Elegantere Methode, dies in Ruby zu tun

8

Ich habe mit Ruby angefangen und finde neue, kürzere, elegante Wege, jeden Tag Code zu schreiben.

Bei der Lösung von Project Euler-Problemen habe ich viel Code geschrieben wie

%Vor%

Gibt es einen eleganteren Weg dies zu schreiben?

    
Anurag 21.12.2009, 12:54
quelle

8 Antworten

16
%Vor%

siehe: Enumerable. max

Haftungsausschluss: Obwohl dies ein wenig lesbarer ist (imho), ist es weniger performant:

%Vor%

ergibt (mit Ruby 1.8.6 (2008-08-11 Patchlevel 287)):

%Vor%     
miku 21.12.2009, 13:19
quelle
15

Dies kann in einer einzigen Zeile erfolgen:

%Vor%     
Trevor 21.12.2009 12:59
quelle
6

Vielleicht ein One-Liner?

%Vor%     
Nils Riedemann 21.12.2009 13:00
quelle
2

Das ist elegant genug. Es ist lesbar und einfach zu warten.

Wenn Sie kürzer wollen, können Sie gehen:

%Vor%

oder

%Vor%

... aber es ist nicht unbedingt eine Verbesserung in allen Fällen (beachten Sie Lesbarkeit).

    
marcgg 21.12.2009 13:10
quelle
1

Da ich es oben nicht sehen kann, lehne ich mich dieser Verwendung der ternärer Operator :

%Vor%

und es gibt auch diese eher selten anzutreffende Version:

%Vor%

... welches schwerer zu lesen ist, aber einen (mir) etwas unerwarteten Nebeneffekt des Kurzschlusses zeigt. (Siehe diesen Blogbeitrag .)

    
Mike Woodhouse 21.12.2009 15:01
quelle
0

Oder auf diese Weise

%Vor%     
java_dude 21.12.2009 13:13
quelle
0

Es sieht gut aus, wie Sie es schon haben. Ich würde den Vergleich nur so ändern, dass er lautet:

Wenn der aktuelle Score größer als der beste Score ist

Sie können auch eine Methode erstellen und diese aufrufen. Das ist mehr OO für mich.

%Vor%

Darum geht es bei OOP nicht? Halte den Objektstatus.

%Vor%     
OscarRyz 21.12.2009 13:24
quelle
0

Nicht sicher, es würde als "eleganter" qualifizieren, aber wenn Sie das nicht jedes Mal neu schreiben möchten ...

%Vor%     
phtrivier 21.12.2009 13:07
quelle

Tags und Links