开发者

What's the effect in Ruby when you initialize with nil: x = String(nil)

What's the effect in Ruby when you pass nil to the constructor as in:

s = String(nil)

or

a = Array(nil)

Does this mean that s or a is nil or that s or a is an unp开发者_如何学编程opulated object of type String or type Array?


String(arg) calls to_s on arg and returns the result. nil.to_s returns a new empty string. String(nil) therefore returns a new empty string.

Array(arg) attempts to call to_ary and then to_a on arg, returning the result of the first method that exists (or [arg] if neither method exists). NilClass doesn't have a to_ary method, but nil.to_a returns a new empty array. Array(nil) therefore returns a new empty array.

Note that String(arg) and Array(arg) aren't constructors. They are just global methods defined in Kernel. To construct objects in Ruby, you typically call new on a class, e.g. Array.new(2) to create an array of length 2.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜