相关疑难解决方法(0)

告诉ruby中的.each循环结束

如果我有一个循环,如

users.each do |u|
  #some code
end
Run Code Online (Sandbox Code Playgroud)

用户是多个用户的哈希值.什么是最简单的条件逻辑,看你是否在用户哈希中的最后一个用户,并且只想为最后一个用户执行特定的代码,所以像

users.each do |u|
  #code for everyone
  #conditional code for last user
    #code for the last user
  end
end
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby each loops ruby-on-rails

80
推荐指数
7
解决办法
5万
查看次数

如何在Ruby循环中的第一次迭代中采取不同的行为?

我总是使用计数器来检查i==0循环中的第一个项目():

i = 0
my_array.each do |item|
  if i==0
    # do something with the first item
  end
  # common stuff
  i += 1
end
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方法来做到这一点(也许是一种方法)?

ruby

72
推荐指数
2
解决办法
3万
查看次数

在为每个使用时识别最后一个循环

我想在对象上执行'foreach'时,对最后一个循环迭代做一些不同的事情.我正在使用Ruby,但C#,Java等也是如此.

  list = ['A','B','C']
  list.each{|i|
    puts "Looping: "+i # if not last loop iteration
    puts "Last one: "+i # if last loop iteration
  }
Run Code Online (Sandbox Code Playgroud)

所需的输出相当于:

  Looping: 'A'
  Looping: 'B'
  Last one: 'C'
Run Code Online (Sandbox Code Playgroud)

显而易见的解决方法是使用代码将代码迁移到for循环'for i in 1..list.length',但for each解决方案感觉更优雅.在循环期间编写特殊情况的最优雅方法是什么?可以用foreach完成吗?

c# ruby java foreach loops

48
推荐指数
7
解决办法
5万
查看次数

我怎么能在each_char中做到这一点?

我有这个:

sentence.each_char {|char|
   ......
   ......
}
Run Code Online (Sandbox Code Playgroud)

我要这个:

sentence.each_char {|char|
   if (char is the last char)
     ......
   end
}
Run Code Online (Sandbox Code Playgroud)

有人知道我怎么做吗?

ruby

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

ruby ×4

loops ×2

c# ×1

each ×1

foreach ×1

java ×1

ruby-on-rails ×1