- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
Ruby 2.3 的安全运算符 &.
和 ActiveSupport 的 try!
方法可以互换吗?如果不是,它们之间有什么区别?
最佳答案
一个关键的区别是 try!
是一个额外的方法调用,而 &.
不是。我能想到这造成的一个(公认的人为的)差异
"1234"&.gsub(/\d/, "a")
$& #=> "1234"
这并不奇怪 - 我进行了正则表达式匹配,因此设置了正则表达式全局变量($&
是匹配的字符串)。
但是如果(在新的 irb session 中——这很重要)我这样做
"1234".try!(:gsub, /\d+/, "a")
$& #=> nil
然后正则表达式相关的全局变量为零。这是因为这些全局变量并不是真正的全局变量——它们与调用代码的位置相关联(文档调用此线程和方法局部全局变量)
在这种情况下 $&
仍在设置,但它是在 try!
中设置的方法,所以你永远看不到它。
额外的方法调用也使得 try
较慢(在快速基准测试中几乎是一个数量级),尽管在任何实际使用中,您调用的实际方法的成本应该使 try!
的成本相形见绌。
关于ruby-on-rails - Ruby 2.3 safe navigation operator '&. and the ' 之间有什么区别试试!来自 ActiveSupport 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845254/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How do you handle resources in MATLAB in an exception
我有以下方法: class MyClass { public: MyClass; bool method (MyClass &obj); }; void MyClass::method
在Swift 2.0之后,Apple 引入了一种新的错误处理方式(do-try-catch)。几天前,在 Beta 6 中引入了一个更新的关键字(try?)。另外,我知道我可以使用 try!。这 3
如果您认为有可能出现空指针异常,您应该使用 if 语句来确保变量不为空,还是应该捕获异常? 我看不出有什么区别,因为您可以将处理空指针的逻辑放在 if 语句或 catch block 中,那么哪个是最
我想使用try和except,如何从除外回到尝试?代码如下: 尝试: 人脸检测功能 预期NameError: 打印(“未检测到脸部”) 现在这里是我想回到try语句的位置,以便继续搜索面部。有没有办法
我想将我的 name.php 文件重定向/重写到/name/我在另一个主题上找到了解决方案 (http://stackoverflow.com/questions/5527789/htaccess-r
我想避免在多个地方写入 error Count += 1。 我正在寻找比更好的方法 success = False try: ... else: suc
把我的头发拉出来。刚刚做了一个 pod 更新并吸取了 Realm Swift 0.99.1 并且我到处都有 let realm = try! Realm() 行我用 EXC_BAD_INSTRUCTI
我看到有人说使用不带参数的 catch 是一种不好的形式,尤其是当 catch 什么都不做的时候: StreamReader reader=new StreamReader("myfile.txt"
让我们假设一个使用构建器模式构造的对象。 该构建器模式将包含build方法,该方法专注于字段验证,然后转换为目标类型。 可以使用以下方法实现此验证: Either[FailureObject, Tar
我在 Windows 10 中安装了 minikube 。我可以启动 minikube **C:\WINDOWS\system32>minikube start * minikube v1.15.1
大家好,我是二哥呀! 昨天,一位球友问我能不能给他解释一下 @SpringBootApplication 注解是什么意思,还有 Spring Boot 的运行原理,于是我就带着他扒拉了一下这个注解的源
当我安装 cocoa pod 时,我收到此消息。下载的 cocoa pod 的版本为1.10.1。香港专业教育学院试图使用他们给的命令,但这出现了: 忽略ffi-1.13.1,因为未构建其扩展名。试试
当我尝试构建 Flutter项目至 IOS 它向我显示了这个错误,我尝试清理并尝试更改项目的目录。 Launching lib/main.dart on iPhone 12 Pro Max in de
我试过运行 pod install在我的 Xcode 项目中,但出现以下错误 /System/Library/Frameworks/Ruby.framework/Versions/2.6/us
rails 生成 acts_as_votable:migration忽略 bootsnap-1.3.1,因为它的扩展没有构建。尝试:gem pristine bootsnap --version 1.
我是一名优秀的程序员,十分优秀!