2016-07-27 4 views

Antwort

4

ich wahrscheinlich

tun würde
if [a, b, c].any? { |x| x > 0 } 
    puts "greater that zero" 
else 
    puts "it is zero or less than zero" 
end 
+3

'[a, b, cc] .any? & 0.method (: <) ':) – mudasobwa

+1

Es ist nicht lesbar, komm schon: D – Ursus

+0

Wenn Ruby die Sprache ist, die du regelmäßig benutzt, ist es noch lesbarer als' {| x | x> 0} '. – mudasobwa

3

Wie wäre:

if [a, b, c].max > 0 
    puts "greater that zero" 
else 
    puts "it is zero or less than zero" 
end 
+0

Eine Frage: Ich denke, mit 'max' muss es durch alle Elemente des Arrays gehen, stattdessen mit 'any?' An der ersten wahren kann es beenden und geben Sie das Ergebnis. Fehle ich etwas? – Ursus

+0

Natürlich hast du recht. Aber für dieses Größen-Array hat es auch keine Bedeutung. –

+0

Sicher, es ist wahr :) – Ursus

2

Ich mag für eine wahre oder falsche Situation Ternary Operatoren verwenden.

[a,b,c].any?(&:positive?) ? "greater that zero" : "it is zero or less than zero" 

Einige Beispiele: https://repl.it/CgZR/1

+0

richtig, außer die 'alle?' Sollte 'any?' –

+0

Richtig. Ich dachte fälschlicherweise, dass alle Zahlen positiv sein sollten. – pmannion

+0

positiv? Es existiert nicht – Ursus

Verwandte Themen