我喜欢Ruby并且已经使用它几年来处理日常脚本任务.最近,我有很多人告诉我,Perl就在那里.我没有任何反对Perl的东西,但它似乎有点落后于时代.
然而,这可能只是我的看法,所以我问你们所有人,是什么让Perl如此出色?我真的在这里寻求信息; 我想理解为什么这种语言有如此热烈的追随者.
我一直想在网上和这个网站上找几个小时回答这个问题的答案,我不在那里.
我知道.NET会为应用程序分配1MB,并且最好通过重新编码而不是强制堆栈大小来避免堆栈溢出.
我正在开发一个"最短路径"的应用程序,可以运行大约3000个节点,此时它会溢出.这是导致问题的方法:
public void findShortestPath(int current, int end, int currentCost)
{
if (!weight.ContainsKey(current))
{
weight.Add(current, currentCost);
}
Node currentNode = graph[current];
var sortedEdges = (from entry in currentNode.edges orderby entry.Value ascending select entry);
foreach (KeyValuePair<int, int> nextNode in sortedEdges)
{
if (!visited.ContainsKey(nextNode.Key) || !visited[nextNode.Key])
{
int nextNodeCost = currentCost + nextNode.Value;
if (!weight.ContainsKey(nextNode.Key))
{
weight.Add(nextNode.Key, nextNodeCost);
}
else if (weight[nextNode.Key] > nextNodeCost)
{
weight[nextNode.Key] = nextNodeCost;
}
}
}
visited.Add(current, true);
foreach (KeyValuePair<int, int> nextNode in sortedEdges)
{
if(!visited.ContainsKey(nextNode.Key) …
Run Code Online (Sandbox Code Playgroud) 我有一个格式为"x,y"的字符串列表.我想把它们全部变成积分.我能找到的最好的Point构造函数有两个整数."14,42"
变成C#的最佳方式是什么new Point(14,42);
?
我知道Regex就是这样做的/(\d+),(\d+)/
,但是我很难将这两个匹配组转换成C#中的int.
我正在研究一个简单的XML电话本应用程序来学习JQuery,我无法弄清楚如何做这样的事情:当用户在文本框中输入联系人的第一个名字时,我想找到它的整个记录人.XML看起来像这样:
<phonebook>
<person>
<number> 555-5555</number>
<first_name>Evelyn</first_name>
<last_name>Remington</last_name>
<address>Edge of the Abyss</address>
<image>path/to/image</image>
</person>
<person>
<number>+34 1 6444 333 2223230</number>
<first_name>Max</first_name>
<last_name>Muscle</last_name>
<address>Mining Belt</address>
<image>path/to/image</image>
</person>
</phonebook>
Run Code Online (Sandbox Code Playgroud)
我能用jQuery做的最好的事情是这样的:
var myXML;
function searchXML(){
$.ajax({
type:"GET",
url: "phonebook.xml",
dataType: "xml",
success: function(xml){myXML = $("xml").find("#firstNameBox").val())}
});
}
Run Code Online (Sandbox Code Playgroud)
我想要它做的是返回整个<person>
元素,以便我可以迭代并显示所有人的信息.任何帮助,将不胜感激.
我正在使用Linq-to-XML来做一个简单的"这个用户注册"检查(这里没有安全性,只是为桌面应用程序制作注册用户列表).如何处理来自这样的查询的结果:
var people = from person in currentDoc.Descendants("Users")
where (string)person.Element("User") == searchBox.Text
select person;
Run Code Online (Sandbox Code Playgroud)
我理解使用结果的最常见方式是类似的
foreach (var line in people){
//do something here
}
Run Code Online (Sandbox Code Playgroud)
但是person
,如果这个人没有注册,你会怎么做?
我在这个网站和MSDN上环顾四周,还没有找到一个非常明确的答案.
额外信用:对people
包含的内容给出一个很好的解释.
使用MarkLogic从xdmp:http-get()
或使用或从Web服务中提取数据xdmp:http-post()
,我希望能够在尝试处理数据之前检查返回的标头.在DQ我可以这样做:
let $result := xdmp:http-get($query,$options) (: $query and $options are fine, I promise. :)
return $result
Run Code Online (Sandbox Code Playgroud)
我得到的结果看起来像这样:
<v:results v:warning="more than one node">
<response>
<code>200</code>
<message>OK</message>
<headers>
<server>(actual server data was here)</server>
<date>Thu, 07 Jun 2012 16:53:24 GMT</date>
<content-type>application/xml;charset=UTF-8</content-type>
<content-length>2296</content-length>
<connection>close</connection>
</headers>
</response>
Run Code Online (Sandbox Code Playgroud)
然后是实际的回应.问题是我似乎无法将XPath放入此响应节点.如果我改变我的return语句,return $result/response/code
我得到空序列.如果我可以检查该代码以确保在尝试处理返回的实际数据之前得到200,那么使用try-catch块来查看数据是否存在且是否合理要好得多.
所以,如果有人知道如何访问这些响应代码,我很乐意看到你的解决方案.
为了记录,我尝试过xdmp:get-response-code()
,但它没有采取任何参数,所以我不知道它正在看什么响应代码.
我有几个脚本使用ActiveRecord与MySQL数据库交互而没有其余的Rails包(尽管我已经安装了完整的Rails gem).但是,当我尝试在ActiveRecord-descended类上调用find()时,最近尝试使用这些类已经给了我NoMethodError.
类代码非常基本:
class LineItem <ActiveRecord::Base
set_primary_key 'id'
set_table_name "line_items"
end
Run Code Online (Sandbox Code Playgroud)
是的,因为我使用的是MySQL数据库,所以我有一个db连接器文件:
require 'rubygems'
require 'active_record'
require 'logger'
ActiveRecord::Base.establish_connection(
:adapter =>'mysql',
:database=>'my_db',
:username=>'my_user',
:password=>'a_password',
:host=>"ip_address",
:port=>3306
)
ActiveRecord::Base.logger = Logger.new(STDERR)
Run Code Online (Sandbox Code Playgroud)
但是当我运行脚本时:
require "dbconn"
require "lineitem"
li = LineItem.new()
li.find(1)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
NoMethodError: undefined method `find' for #<LineItem id: nil, trans_id: nil, trans_code: nil, data: nil>
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/attribute_methods.rb:260:in `method_missing'
from (irb):4
Run Code Online (Sandbox Code Playgroud)
如果有人有任何建议我会很感激.我在OSX 10.6.1上使用Ruby 1.8.7是的,它在10.5.x上运行良好
c# ×3
activerecord ×1
javascript ×1
jquery ×1
linq-to-xml ×1
marklogic ×1
mysql ×1
perl ×1
regex ×1
ruby ×1
xquery ×1