ruby – 字符串“#$”和“#@”的SyntaxError
发布时间:2020-12-17 03:59:22 所属栏目:百科 来源:网络整理
导读:有人可以向我解释这种行为吗? "#$"SyntaxError: (irb):3: unterminated string meets end of file from /Users/milan/.rvm/rubies/ruby-1.9.2-head/bin/irb:16:in `main' "#@"SyntaxError: (irb):4: syntax error,unexpected $undefined(irb):4: unterminat
有人可以向我解释这种行为吗?
>> "#$" SyntaxError: (irb):3: unterminated string meets end of file from /Users/milan/.rvm/rubies/ruby-1.9.2-head/bin/irb:16:in `<main>' >> "#@" SyntaxError: (irb):4: syntax error,unexpected $undefined (irb):4: unterminated string meets end of file from /Users/milan/.rvm/rubies/ruby-1.9.2-head/bin/irb:16:in `<main>' >> "#$$" "10994" 我错过了1.9.2的一些新功能吗?困惑. 解决方法
您可能知道可以在双引号值内使用#{expression}将expression的值插入该位置的字符串中.一个鲜为人知的子特征是,如果表达式只是全局变量或实例变量,则可以省略大括号.即双引号字符串中的#$foo将插入全局变量$foo的值,#@ foo将对实例变量执行相同操作.
所以你的前两个例子出错了,因为它认为你想分别得到变量$“或@”(后者不是变量名 – 虽然第一个是 – 这就是为什么你得到两个错误信息的原因第二个,第一个只有一个),保持字符串不闭合.第三个例子只是给你变量$$的值. 如果你不希望发生这种情况,你可以在前面用反斜杠转义#(如果你不需要任何双引号特定的行为,只需使用单引号而不是双引号). 这种行为并不特定于ruby 1.9 – 它一直都是这样的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |