Ruby on rails 如何使用逗号连接整数,而不在末尾使用逗号
如果我这样做:Ruby on rails 如何使用逗号连接整数,而不在末尾使用逗号,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果我这样做: users.each do |u| str += u.id.to_s + ',' end 我将以以下内容结束: 1,3,234,234, 是否有一种循环方式不会在末尾留下尾随的,'?我知道我可以在循环结束后咀嚼它,但我一直在寻找一种不必这样做的方法 users.map { |u| u.id.to_s }.join ',' 事实上,#join将为您提供#to#,因此,请仔细想想: users.map(&:id).join ',' 甚至更短: users.map
users.each do |u|
str += u.id.to_s + ','
end
我将以以下内容结束:
1,3,234,234,
是否有一种循环方式不会在末尾留下尾随的,'
?我知道我可以在循环结束后咀嚼它,但我一直在寻找一种不必这样做的方法
users.map { |u| u.id.to_s }.join ','
事实上,#join
将为您提供#to#
,因此,请仔细想想:
users.map(&:id).join ','
甚至更短:
users.map(&:id).join ','
是的,我想出来了,但在打字之前,我浪费了很多时间去查找“加入”。接得好。@DanneManne一点也不正确。在代码的“简单性”和“可读性”之间有一条实际的界线,这条线经常朝着前者的方向倾斜。并不是说你已经越过了这个特定的解决方案,但对于你的一般评论,我将不得不强烈反对。考虑到你的回答事实上对我有所帮助,我适当地提高了投票率。谢谢你能解释一下map在做什么吗?&:id是块?@Blankman:在文档中查找Symbol\to\u proc
。基本上,它的功能相当于{u | u.id}
。对了,Ruby应该有一个常见问题解答,用于查找容易遗漏的API文档位置<代码>&
总是关于将一个块转换成一个进程,或者,在本例中,将一个进程转换成一个块。&
操作将尝试将任何非proc参数转换为带有#to_proc的proc。碰巧,如果您在核心API文档中查找类符号
,您会发现#to_proc
,它是一个带有单个方法调用的块的缩写。