由于我的其他需求,我正在使用行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在功能上的区别吗
发布于 2013-03-08 19:13:17
该符号通常不存在。
但是用你的代码来创建它..只要提一下就行了。
在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发布于 2013-03-08 16:35:35
next是一个Ruby方法,:_next是一个符号。
假设您有一个数组= [1,2,3]。运行以下命令将打印2,6
[1,2,3].each{ |n| next if n.even? ; puts 2*n }符号形式的next将接收器转换为字符串,然后以符号形式返回String#next的结果。
示例:"gender".to_sym.next将返回:gendes
发布于 2013-03-08 18:22:11
我现在已经在Mac上的ruby 1.9.3-p374,ruby 1.9.3-p385,ruby 1.9.3-p392和ruby 2.0.0-p0上测试了这一点。我不能复制这个。我总是弄错。
你有没有在Ruby的其他版本上尝试过?
https://stackoverflow.com/questions/15289486
复制相似问题