结肠前的结肠

时间:2016-02-20 06:21:49

标签: ruby symbols literals

我试过了:

:"asdfas"
# => :asdfas
  1. 控制台输出似乎表明我已声明:asdfas。我理解正确吗?如果没有,输出实际意味着什么?
  2. 实际上,在字符串之前使用冒号是否常见?如果是,它用于什么?
  3. 编辑:

    Daniel Contreras提到“每个输出都是该函数或对象的返回值”,因此后续问题是:为什么不是:"asdfas"

    :"asdfas"
    # => :asdfas  # why not :"asdfas"
    

    为什么asdfas周围的引号会在输出中被删除?

1 个答案:

答案 0 :(得分:1)

根据我对ruby的有限知识,每个输出都是该函数或对象的返回值。例如

> foo = 1+2
=> 3

> "#{foo} bar"
=> "3 bar"

回答2号:是的,如果您想使用特殊字符作为符号的一部分,它通常被用作逃避。

> :foo-bar     
NameError: undefined local variable or method `bar' for main:Object
from (irb):10
from /usr/bin/irb:12:in `<main>'

> :'foo-bar'     
=> :"foo-bar"

因此,:foo-bar 是无效符号:"foo-bar"是有效符号。

编辑:最后一部分不正确,请参阅下面的峰值答案以获得正确答案。