Ich habe drei Möglichkeiten gefunden, die gleiche Bedingung in Ruby zu schreiben:
%Vor%Warum kann ich das nicht tun?
%Vor%Ich verstehe nicht:
Aussage Nr. 4 scheint die natürlichste Art zu sein, dies zu schreiben. Ich verstehe nicht, warum das nicht möglich ist.
Die Syntax " if x then y end
" ist für mehrzeilige Bedingungen gedacht, während das Formular " y if x
" für prägnante einzeilige bedingte Anweisungen gedacht ist. Der then
ist im ersten Fall notwendig, um Ruby mitzuteilen, dass die Bedingung vorüber ist (da Ruby keine Parens wie C benötigt), und% code_de ist notwendig, um Ruby mitzuteilen, dass der gesamte end
-Block abgelaufen ist ( da es mehrere Zeilen sein kann).
Sie können if
durch ein Semikolon ersetzen, da ein Zeilenende auch das Ende der Bedingung signalisiert. Sie können die then
nicht mit einer mehrzeiligen end
loswerden. Verwenden Sie entweder das zweite Formular oder den Ternäroperator, wenn Sie einen übersichtlichen Einzeiler wünschen.
Beispiel:
%Vor%Folgendes wird als wahr ausgewertet und gibt y zurück
%Vor%ebenfalls wird dies falsch auswerten und nichts zurückgeben
%Vor%fügen Sie einen Ausdruck nach dem ':' für den else-Fall hinzu
%Vor%Die Sache ist, dass beide Wege tatsächlich eine natürliche Art zu denken sind:
Wenn das stimmt, dann tu etwas
tue etwas, wenn das wahr ist
Siehe? Ruby versucht, auf diese Weise der englischen Syntax nahe zu kommen. Das Ende ist nur notwendig, um den Block zu beenden, während in der zweiten Version der Block bereits mit if geschlossen ist.
Um Ihre Frage tatsächlich zu beantworten, denke ich, dass es keine Möglichkeit gibt, das dann und Ende zu entfernen. Erinnerst du dich an Pascal / Delphi? Sie haben dort auch ein dann . Es ist typisch nur für Sprachen im C-Stil, es nicht zu haben.
Wie wäre es stattdessen mit einem Doppelpunkt? Ссылка
Es gibt verschiedene Möglichkeiten, wie Sie einen Kurzschluss machen könnten, wenn Sie das möchten.
Die bedingte Anweisung ist nur ein Teil der Ruby-Syntax, um sie englischer zu machen.