由于我的其他要求,我正在使用行p( Symbol.all_symbols )
搜索另一个符号。那时,我的IRB也得到了:_next
,但对此却一无所知。我正在使用:
C:\>ruby -v
ruby 1.9.3p374 (2013-01-15) [i386-mingw32]
您可以使用以下代码检查相同内容:
Arr = Symbol.all_symbols
Arr.include?(:_next) #=> true
有人可以帮我理解next
与:_next
的功能有何区别吗?
答案 0 :(得分:1)
该符号通常不存在。
但是使用您的代码,您只需提及它即可创建它。
尝试irb:
arr = Symbol.all_symbols
arr.include? :_next # => false
arr = Symbol.all_symbols
arr.include? :_next # => true
或(使用新实例)试试这个:
Symbol.all_symbols.map(&:to_s).include?('_next') # => false
:_next
Symbol.all_symbols.map(&:to_s).include?('_next') # => true
答案 1 :(得分:0)
next
是Ruby方法,:_next
是符号。
假设您有一个数组= [1,2,3]
。运行以下命令将打印[2,6]
[1,2,3].each{ |n| next if n.even? ; puts 2*n }
next
作为符号将接收器转换为String,然后将String#的结果作为符号返回。
示例:"gender".to_sym.next
将返回:gendes
答案 2 :(得分:0)
我现在在我的Mac上用ruby 1.9.3-p374,ruby 1.9.3-p385,ruby 1.9.3-p392和ruby 2.0.0-p0测试了这个。我无法重现这一点。我总是假的。
你有没有尝试过任何其他版本的Ruby?