相关疑难解决方法(0)

将Ruby符号理解为方法调用

class A
   def test
       "Test from instance"
   end
   class << self
       def test
           "Test from class"
       end
    end
end

p A.send(:test)    # "Test from class"
p A.new.method(:test).call  # "Test from instance"
Run Code Online (Sandbox Code Playgroud)

符号按预期工作,但在这里:

s="test"
s1=:s
p s1   # :s
Run Code Online (Sandbox Code Playgroud)

为什么:s在这里打印?我不明白它背后的原因.有人可以帮我解释一下吗?

ruby ruby-1.9

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

ruby ×1

ruby-1.9 ×1