0

我想知道这是语法问题还是三元运算符在每个语句中不起作用?

下面是代码(代码在第二行

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") }
4

1 回答 1

1

是的,是语法问题。在冒号前放置空格并puts用括号括住参数(以消除歧义)。

(year_start..year_end).each {|x| no_repeats?(x) ? puts(x) : puts("nil") }
于 2013-05-24T14:10:49.220 回答