Ruby:区别@ cars.each do | car |并在@cars做汽车
发布时间:2020-12-16 19:43:10 所属栏目:百科 来源:网络整理
导读:(对于新手问题,对不起)在 Ruby中,循环有什么区别? @cars.each do |car| 和 for car in @cars do ? 效率有差异,还是为什么需要两种(或多种)表达方式呢?第二种方式对我来说似乎更为优雅/自然,但是我可能会缺少一些关键的观察,为什么第一个可能是更好的选择.
(对于新手问题,对不起)在
Ruby中,循环有什么区别?
@cars.each do |car| 和 for car in @cars do ? 效率有差异,还是为什么需要两种(或多种)表达方式呢?第二种方式对我来说似乎更为优雅/自然,但是我可能会缺少一些关键的观察,为什么第一个可能是更好的选择. 解决方法
更多的人使用@ cars.each符号,因为它推广到其他方法(如#inject,#each_with_index,#map等,以及非迭代器回调).
for / in主要是#each的句法糖.两个工作的主要区别在于可变范围: irb> @cars = %w{ ford chevy honda toyota } #=> ["ford","chevy","honda","toyota"] irb> @cars.each { |car| puts car } ford chevy honda toyota #=> ["ford","toyota"] irb> car NameError: undefined local variable or method `car` for #<Object:0x399770 @cars=["ford","toyota"]> from (irb):3 from /usr/local/bin/irb:12:in `<main>` irb> for car in @cars puts car.reverse end drof yvehc adnoh atoyot #=> ["ford","toyota"] irb> car #=> "toyota" for / in在之后的范围内离开迭代器变量,而#each没有. 就个人而言,我从来没有使用ruby的/在语法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |