当我写:~@
和:!@
时,它们会被评估为:~
和:!
,这也可以通过编写:~
和{{1}来实现}}。这些表达式是如何解析的,:!
去了哪里?
答案 0 :(得分:1)
这与解析器中的优先级有关。简单的破折号也会破坏冒号 - 手段 - 符号语法:
2.1.2 :004 > c = :test-thing
NameError: undefined local variable or method `thing' for main:Object
但是,解决它很容易:尝试:'~@'
,
(当然,如果您可以避免在代码中创建这样一个奇怪的符号,那可能是个更好的主意......)