ruby 没有让我感到困惑
ruby nil confusing me
我从昨天开始学习 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..."
起初我只是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...
我从昨天开始学习 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..."
起初我只是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...