【发布时间】:2012-02-09 00:28:52
【问题描述】:
我正在学习 Ruby,我喜欢使用 irb 来发现新功能和技巧。今天我在玩变量和方法,因为我想知道哪个优先于另一个。一切看起来都很好,直到我尝试了这个:
def test
puts "hello"
end
test = "bye" if false
puts test
我期待这会返回 "hello" ,但事实并非如此。所以,我想解析器将“测试”视为一个变量,而不是一个方法。我有两个问题:
- 我的假设正确吗?
- 有什么方法可以知道 something 是变量还是方法?像
test.is_variable?这样的一些方法
【问题讨论】:
-
即使没有
test = "bye" if false行,代码也会返回hellonil,因为test方法返回 puts("hello") 的结果,即nil。跨度> -
@GoodEnough 你是对的。我也试过没有“puts”。不过感谢您的评论:)
标签: ruby variables methods declaration