8 Stimmen

Klammern: [Klammern], (Parentheses) & {Curlies} in Ruby & Rails

Die lockere Toleranz von Ruby bei der Verwendung von Klammern manchmal und nicht REQUIRE sie hat zu viel Verwirrung für mich geführt, wie ich versuche, Rails zu lernen und wann/wo jeder zu verwenden und warum?

Manchmal werden Parameter oder Werte als (@user, @comment) und ein anderes Mal scheinen sie zu sein [ :user => comment ] und wieder andere einfach nur so: :action => 'edit'

Ich spreche über die wir von [ ] gegen ( ) gegen { }

Was sind die Regeln? Und gibt es irgendwelche Tricks, die Ihnen helfen, sich daran zu erinnern?

22voto

maerics Punkte 141984

Klammern () dienen der Gruppierung logischer oder mathematischer Ausdrücke und der Gruppierung von Argumenten für einen Funktionsaufruf, z. B.:

a = 2 * (3 + 4)
b = (x==y) || (m==n)
Hash.new.send('[]=', :a, :b)

Gelockte Klammern {} werden für Hash-Literale und Blöcke verwendet, z. B.:

h = {1=>2, 2=>3}
h.each {|k,v| puts k+v}

Eckige Klammern [] werden für Array-Literale, Array-Indizierung und -Slicing sowie für das Abrufen aus einem Hash verwendet, z. B.:

arr = [1, 2, 3]
two = arr[1]
three = h[2]

Um die Sache zu verwirren, können Hash-Literale auch an Ort und Stelle als Argument für einen Methodenaufruf verwendet werden, ohne dass geschweifte Klammern oder Klammern erforderlich sind, solange es sich um das letzte Argument handelt (danke samuil). Außerdem können Hash-Literale in eckigen Klammern verwendet werden, um ein Array mit nur einem Element zu erstellen, das den Hash enthält:

puts 1=>2, 3=>4 #=> 1234
[5=>6, 7=>8]    #=> [{5=>6, 7=>8}]

Verwenden Sie im Zweifelsfall immer Klammern, um Elemente zu gruppieren, und schließen Sie Ihre Hashes in geschweifte Klammern ein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X