最近,我决定在我的代码上更频繁地使用Perl :: Critic.在Perl编程近7年后,我已经习惯了大部分Perl最佳实践,但我知道总有改进的余地.有一件事让我烦恼的是,Perl :: Critic并不喜欢我为子程序解包@_的方式.举个例子:
sub my_way_to_unpack {
my $variable1 = shift @_;
my $variable2 = shift @_;
my $result = $variable1 + $variable2;
return $result;
}
Run Code Online (Sandbox Code Playgroud)
这就是我一直以来的做法,而且,正如PerlMonks和Stack Overflow所讨论的那样,它也不一定是邪恶的.
将上面的代码段更改为...
sub perl_critics_way_to_unpack {
my ($variable1, $variable2) = @_;
my $result = $variable1 + $variable2;
return $result;
}
Run Code Online (Sandbox Code Playgroud)
...也有效,但我发现它更难阅读.我也读过Damian Conway的书Perl Best Practices,我真的不明白我的首选解包方法是否属于他的建议,以避免@_直接使用,正如Perl :: Critic所暗示的那样.我一直认为康威在讨论如下的肮脏:
sub not_unpacking {
my $result = $_[0] + $_[1];
return $result;
}
Run Code Online (Sandbox Code Playgroud)
上面的例子很糟糕,很难阅读,我永远不会考虑在一段生产代码中编写它.
简而言之,为什么Perl …
由于Exchange不支持OWA中的所有本地日历类型,我需要使用Microsoft.Net对日历的支持来创建一个,但我应该从哪里开始?
这段代码
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
Run Code Online (Sandbox Code Playgroud)
在我的加价
<div style="text-align:center;"><img id="loading" src="../images/common/loading.gif" alt="" /></div>
Run Code Online (Sandbox Code Playgroud)
这是完整的ajax请求:
$.ajax({
type: "POST",
url: "http://localhost/WebServices/Service.asmx/GetResults",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
PopulateTree(results);
},
error: function(xhr, status, error) {
var msg = JSON.parse(xhr.responseText);
alert(msg.Message);
}
});
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
$("#loading").ajaxStop(function() {
alert("stop");
$(this).hide();
$("#st-tree-container").show();
});
Run Code Online (Sandbox Code Playgroud)
即使gif显示为旋转,也不会触发警报"开始".AjaxStop按预期触发.有什么想法吗?
我正在向我的服务器发出请求jQuery.post(),我的服务器正在返回JSON对象(如{ "var": "value", ... }).但是,如果任何值包含单引号(正确转义\'),jQuery无法解析其他有效的JSON字符串.这是我的意思的一个例子(在Chrome的控制台中完成):
data = "{ \"status\": \"success\", \"newHtml\": \"Hello \\\'x\" }";
eval("x = " + data); // { newHtml: "Hello 'x", status: "success" }
$.parseJSON(data); // Invalid JSON: { "status": "success", "newHtml": "Hello \'x" }
Run Code Online (Sandbox Code Playgroud)
这是正常的吗?有没有办法通过JSON正确传递单个引用?
我正在Visual Studio 2008中编写一个应用程序.我有一个帮助文件,我希望将其包含在项目的输出中.我希望我的帮助文件的最新版本保留在不是我的visual studio项目目录的文件夹中.例如C:/ Helpfiles.
我想在我的Visual Studio项目中包含这个文件,这样当我构建项目时,我会在项目输出中获得该文件的最新版本(在C:/ helpfiles中).如果我只是"添加现有"并选择帮助文件,它会在每次构建时从C:/ helpfiles中获取最新版本吗?
JRE 6,在Windows XP上.
使用不同构造函数实例化两个File对象会导致该File.exists()方法的结果不一致.
免责声明:以下代码是摘要,而不是实际代码.我根本不相信这是一个File.separator问题.我首先要求得到早期反应,以防我错过了一个很好理解的问题.现在看来,重置系统属性是导致此问题的原因之一.下面的代码现在可以重现并且可以按原样使用.您可以复制/粘贴Java类并尝试它,它应该与我列出的结果一致. user.dir
建立:
创建文件夹架构C:\toto\tmp\sub.
从任何不包含tmp/sub子文件夹体系结构的文件夹中启动以下类.
码:
public class TestFileExists {
public static void main(String[] args) {
System.setProperty("user.dir", "C:\\toto\\");
File root = new File("tmp");
File sub_a = new File(root, "sub");
File sub_b = new File(root.getAbsolutePath()+"/sub");
System.out.println("sub_a path ? "+sub_a.getAbsolutePath());
System.out.println("sub_a exists ? "+sub_a.exists());
System.out.println("sub_b path ? "+sub_b.getAbsolutePath());
System.out.println("sub_b exists ? "+sub_b.exists());
System.out.println("Path equals ? "+ (sub_a.getAbsolutePath().equals(sub_b.getAbsolutePath())));
System.out.println("Obj equals ? "+ (sub_a.equals(sub_b)));
}
}
Run Code Online (Sandbox Code Playgroud)
结果: …
我有一个通过Web服务填充的树 - 这部分是超快的,有点慢的部分填充树...我有一个gif旋转图像,在服务加载时旋转.由于我使用ajaxStop和ajaxStart触发器,gif在ajax请求完成后停止旋转,这是正确的.但是,由于加载需要一瞬间,gif会在一瞬间冻结,看起来不专业.
如何使gif旋转直到树完成加载?
我最近写了一个简单的for循环,并得到了一些意想不到的行为:
for(double x = 0.0; x <= 1.0; x += 0.05)
{
Console.WriteLine(x.ToString());
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
Run Code Online (Sandbox Code Playgroud)
请注意,即使继续for循环的条件似乎包含它,也不会出现1.我意识到这是因为十进制数字作为二进制存储在内存中,即 1实际上不是1,而是实际上是1.0000000000000002(根据Visual Studio中的变量监视).所以我的问题是,避免这种意外行为的最佳方法是什么?一种方法是使用decimal类型而不是double,但大多数System.Math函数double仅在s上工作,并且两者之间的转换并不简单.
我在html中有一个按钮:
<button id="MyButton" onclick="return DoSomething()">Click Me</button>
Run Code Online (Sandbox Code Playgroud)
将"onclick"属性放在html中或使用javascript/DOM将回调附加到按钮单击是否更好?
什么是在文本框中插入文本的jquery插件,它会在焦点时消失?
javascript ×4
jquery ×4
.net ×1
ajax ×1
binary ×1
c# ×1
calendar ×1
filesystems ×1
helpfile ×1
html ×1
java ×1
json ×1
localization ×1
perl ×1
perl-critic ×1
tree ×1