说我想要puts
字母表.所以我可以这样做:
alphabet = ('a'..'z') alphabet.map do |a| puts a end
我现在要做的是排除vowels
.
alphabet = ('a'..'z') vowels = ['a','e','i','o','u'] alphabet.map do |a| puts a unless a == vowels end
我试图避免这种情况:
alphabet = ('a'..'z') alphabet.map do |a| puts a unless a == 'a' puts a unless a == 'e' puts a unless a == 'i' puts a unless a == 'o' puts a unless a == 'u' end
我如何在语法上实现第二个示例,以便它正常工作?
范围可以扩展为数组.然后你可以减去另一个数组.
chars = ('a'..'z').to_a - %w( a e i o u ) chars.each do |a| puts a end
作为旁注,#map
除非你真的需要,否则不要使用.使用#each
,如果你不关心的返回值.