Die häufigste Form, wenn die Klammern um Methodendefinition Argumente erforderlich sind, ist die verschachtelte Methodenaufruf des Formulars
foo g x,y
, die übersetzt werden kann:
foo(g(x,y))
Da der Code jedoch als foo(g(x),y)
interpretiert werden kann, gibt der Ruby eine Warnung aus (* die Warnung wurde in Ruby 1,9 entfernt).
Ein weiterer Fall, in dem Ruby eine Warnung ausgibt, ist der Fall, wenn mehr als ein Argument definiert ist.
Eine weitere Mehrdeutigkeitssituation ist der Fall, wenn Sie die Methode mit Klammern, jedoch mit einem Leerzeichen zwischen Methodennamen und Argumenten, aufrufen.
Nehmen Sie zum Beispiel:
square (2+2) * 2 # => square (4) * 2 => foo (8) = 64
square(2+2) * 2 # => square(4) * 2 => 16 * 2= 32
Als Folge der vorangehenden man das folgende Beispiel nehmen:
puts(square 2, 2)
Dies kann als puts(square(2), 2)
puts(square(2,2))
oder interpretiert werden.
Fazit: Seien Sie vorsichtig, wenn Sie Methoden ohne Klammern aufrufen und definieren.
'def a (b) Ende' sonst würden Sie ein Semikolon brauchen – MarcDefiant