谁能解释为什么不为std :: list实现operator []?我搜索了一下但没有找到答案.实施起来不是太难,或者我错过了什么?
在函数之前添加@有什么作用?我在一些脚本中看到了这一点
例:
$connect = @mysql_connect('localhost', 'root', 'password');
instead of
$connect = mysql_connect('localhost', 'root', 'password');
Run Code Online (Sandbox Code Playgroud) 有人能给我一个带有字符串参数的方法/函数的真实场景,该字符串参数来自用户输入(例如表单字段,文件中的解析数据等),其中前导或尾随空格应该不被修剪?
我永远不会为自己回想起这种情况.
编辑:提醒你,我没有说修剪任何空白.我说修剪前导或尾随(仅)空格(或空格).
如何确定使用哪个rubygem来响应"require"语句?似乎没有帮助的宝石.
背景:对于项目hornsby-herbarium-parser,我正在使用gem roo.
我使用了github gem hmcgowan-roo,因为那时它比rubyforge版本的roo更新.我尝试在runcoderun上测试代码,但它失败了,因为它没有任何版本的roo.到目前为止,github和rubyforge都提供了新版本的roo.
我决定我不妨看看来自RubyForge的最新版本适用于我的代码,因为我认为RubyForge的是更正式的,权威的,而且比github上叉稳定.一旦我确定rubyforge版本适用于我的代码,我会很好地问runcoderun是否可以在他们的系统上安装它.
我sudo gem安装roo,我的宝石现在包括"hmcgowan-roo(1.3.5)"和"roo(1.3.6)",并且运行hornsby-herbarium-parser的测试仍然通过.我知道因为rubyforge版本最近安装了,它应该是测试中使用的版本,但我希望能够验证这一点.
gem which roo
Run Code Online (Sandbox Code Playgroud)
没有帮助,因为它给了我
(checking gem hmcgowan-roo-1.3.5 for roo)
/usr/lib/ruby/gems/1.8/gems/hmcgowan-roo-1.3.5/lib/roo.rb
Run Code Online (Sandbox Code Playgroud)
我认为这是错误的答案.
更新:我用过两者
$:.detect {|dir| dir =~ /roo/}
Run Code Online (Sandbox Code Playgroud)
和
puts Roo::VERSION::STRING
Run Code Online (Sandbox Code Playgroud)
两人都同意宝石,说我还在使用hmcgowan-roo-1.3.5.
我最初注意到我的问题引起了一些困惑.我不是在询问如何配置记录器,也不是如何正确使用记录器,而是如何捕获本地记录级别低于异常消息中当前日志记录级别记录的所有信息.
我已经注意到Java中的两种模式用于记录在发生异常时可能对开发人员有用的信息.
以下模式似乎很常见.基本上,您只需根据需要在线记录您的记录器日志信息,以便在发生异常时获得日志跟踪.
try {
String myValue = someObject.getValue();
logger.debug("Value: {}", myValue);
doSomething(myValue);
}
catch (BadThingsHappenException bthe) {
// consider this a RuntimeException wrapper class
throw new UnhandledException(bthe);
}
Run Code Online (Sandbox Code Playgroud)
上述方法的缺点是,如果你的用户需要相对安静的日志,需要点高度的可靠性,他们就不能"再次在调试模式下尝试",异常消息包含足够的数据本身是对开发者有用.
我看到的下一个模式试图缓解这个问题,但看起来很难看:
String myValue = null;
try {
myValue = someObject.getValue();
doSomething(myValue);
}
catch (BadThingsHappenException bthe) {
String pattern = "An error occurred when setting value. [value={}]";
// note that the format method below doesn't barf on nulls
String detail = MessageFormatter.format(pattern, myValue);
// consider this a RuntimeException wrapper …Run Code Online (Sandbox Code Playgroud) 在面向对象的编程中,我们可以说核心概念是:
函数式编程会是什么?
我有以下代码:
public class Foo {}
static class Program {
[XmlElement("foo")] // Ignored :(
static public List<Foo> MyFoos { get; private set; }
public static void Main() {
MyFoos.Add(new Foo());
MyFoos.Add(new Foo());
XmlSerializer configSerializer =
new XmlSerializer(typeof(List<Foo>), new XmlRootAttribute("foos"));
using (TextWriter w = new StreamWriter("test.xml"))
{
s.Serialize(w, MyFoos);
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中生成以下XML文件:
<?xml version="1.0" encoding="utf-8"?>
<foos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Foo />
<Foo />
</foos>
Run Code Online (Sandbox Code Playgroud)
我真正想要的是Foo标记为的元素foo,而不是......我意识到这主要是装饰性的,但它符合XML中通常被认为是正常的.
我试图在Windows Vista Ultimate机器上运行Trac后的commit.bat脚本.
我已经安装了Trac并且它工作正常 - 但是当我运行这个脚本时,我收到错误:
"用于NT的Python Win32扩展(服务,事件,日志记录)似乎不可用."
有人知道为什么会这样吗?
我经常听到人们说"我了解Java EE"或"我已经掌握了Java EE".
这意味着什么:我什么时候可以这么说,或者我需要学习什么来了解Java EE?
是否有支持emacs风格的ido查找文件的命令行shell或shell自定义?在emacs中,我可以使用C-x C-f和非常快速地导航到目录(ido-mode t).
理想情况下,我正在寻找一种可以在emacs之外使用的解决方案.虽然我会开放一种快速更改eshell缓冲区内目录的方法.