Ich habe vor kurzem die Programmiersprache Ruby gelernt, und im Großen und Ganzen ist es eine gute Sprache. Aber ich war ziemlich überrascht, als ich feststellte, dass sie nicht so einfach ist, wie ich erwartet hatte. Genauer gesagt, schien mir die "Regel der geringsten Überraschung" nicht sehr beachtet zu werden (das ist natürlich sehr subjektiv). Zum Beispiel:
x = true and false
puts x # displays true!
und die Berühmten:
puts "zero is true!" if 0 # zero is true!
Vor welchen anderen "Gotchas" würden Sie einen Ruby-Neuling warnen?
0 Stimmen
@phrases.insert(0, p) OK @phrases.insert(p) NICHTS passiert @phrases<<p # OK
0 Stimmen
Warum ist
true and false
true zurückgeben?3 Stimmen
Denn "x = wahr und falsch" wird eigentlich als "(x = wahr) und falsch" interpretiert. Das ist eine Frage des Vorrangs der Operatoren: "und" hat eine niedrigere Priorität als "=". Die meisten anderen Sprachen haben die umgekehrte Priorität, ich weiß nicht, warum sie diese Reihenfolge in Rails gewählt haben, ich finde es sehr verwirrend. Wenn Sie das "normale" Verhalten wollen, geben Sie einfach "x = (true und false)" ein, dann wird x falsch sein.
4 Stimmen
Eine andere Lösung ist die Verwendung von "&&" und "||" anstelle von "und" und "oder": Sie verhalten sich wie erwartet. Zum Beispiel: "x = true && false" führt dazu, dass x falsch ist.
0 Stimmen
"Das Prinzip der geringsten Überraschung bedeutet das Prinzip der geringsten mi Überraschung." aus de.wikipedia.org/wiki/Ruby_(Programmiersprache)#Philosophie Das Gleiche gilt für Python. Ich hatte ein ähnliches Zitat über den Schöpfer von Python, aber ich habe vergessen, wo es stand.
0 Stimmen
Array-Deklaration in Ruby