use*_*806 0 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4
我从昨天开始学习Ruby.以下是我的疑问:
class MegaGreeter
attr_accessor :names
def intialize(names="World!")
@names = names
end
def say_test
if @names.nil?
puts "nil test..."
end
end
end
megaGreeter = MegaGreeter.new
megaGreeter.say_test // Here showing ouput as "nil test..."
Run Code Online (Sandbox Code Playgroud)
起初我只是assuming 'nil' almost like 'null' in java.但我的假设在上述情况下似乎是错误的.
我不明白为什么在上面if @names.nil returning as TRUE?,@names will have a value "World!"既然如此,@ names如何视为null?
我已经搜索了' nil',但我真的没有清楚地了解它.
你有一个错字.#intialize应该是initialize.
看到,
class MegaGreeter
attr_accessor :names
def initialize(names = "World!")
@names = names
end
def say_test
if @names.nil?
puts "nil test..."
else
puts "@names is not holding nil"
end
end
end
megaGreeter = MegaGreeter.new
megaGreeter.say_test # => @names is not holding nil
megaGreeter = MegaGreeter.new(nil)
megaGreeter.say_test # => nil test...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |