首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`next`与`:_next`的区别

`next`与`:_next`的区别
EN

Stack Overflow用户
提问于 2013-03-08 16:16:37
回答 3查看 222关注 0票数 2

由于我的其他需求,我正在使用行p( Symbol.all_symbols )搜索另一个符号。当时,我的IRB中也有:_next,但我对此一无所知。我正在使用:

代码语言:javascript
复制
C:\>ruby -v
ruby 1.9.3p374 (2013-01-15) [i386-mingw32]

您可以使用以下代码进行检查:

代码语言:javascript
复制
Arr = Symbol.all_symbols 
Arr.include?(:_next) #=> true

有人能帮我理解一下next:_next在功能上的区别吗

EN

回答 3

Stack Overflow用户

发布于 2013-03-08 19:13:17

该符号通常不存在。

但是用你的代码来创建它..只要提一下就行了。

在irb中尝试:

代码语言:javascript
复制
arr = Symbol.all_symbols
arr.include? :_next                       # => false
arr = Symbol.all_symbols
arr.include? :_next                       # => true

或者(使用新实例)尝试执行以下操作:

代码语言:javascript
复制
Symbol.all_symbols.map(&:to_s).include?('_next') # => false
:_next
Symbol.all_symbols.map(&:to_s).include?('_next') # => true
票数 1
EN

Stack Overflow用户

发布于 2013-03-08 16:35:35

next是一个Ruby方法,:_next是一个符号。

假设您有一个数组= [1,2,3]。运行以下命令将打印2,6

代码语言:javascript
复制
[1,2,3].each{ |n| next if n.even? ; puts 2*n }

符号形式的next将接收器转换为字符串,然后以符号形式返回String#next的结果。

示例:"gender".to_sym.next将返回:gendes

票数 0
EN

Stack Overflow用户

发布于 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的其他版本上尝试过?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15289486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档