我想知道这是一个语法问题还是三元运算符在每个语句中都不起作用?
下面是代码(代码在第二行
def no_repeats(year_start, year_end)
(year_start..year_end).each {|x| no_repeats?(x) ? puts x: puts "nil"}
end
def no_repeats?(year)
splitted_year = year.to_s.split("")
counter=[]
splitted_year.each {|x| counter << x unless counter.include?(x)}
if counter.count == 4
return true
else
return false
end
end
no_repeats(1980,1985)
以下代码解决了这个问题
(year_start..year_end).each {|x| no_repeats?(x) ? puts(x) : puts("nil") }
答案 0 :(得分:1)
是的,这是语法问题。在冒号前放置空格并用括号括起puts
的参数(以消除歧义)。
(year_start..year_end).each {|x| no_repeats?(x) ? puts(x) : puts("nil") }