110 Stimmen

Was bedeutet << in Ruby?

Ich habe einen Code:

  def make_all_thumbs(source)
    sizes = ['1000','1100','1200','800','600']
    threads = []
    sizes.each do |s|
      threads << Thread.new(s) {
        create_thumbnail(source+'.png', source+'-'+s+'.png', s)
      }
    end
  end

Was bedeutet << bedeuten?

7voto

shubham mishra Punkte 1043

In Ruby wird der '<<'-Operator grundsätzlich für verwendet:

  1. Anhängen eines Wertes im Array (an letzter Position)

    [2, 4, 6] << 8 Das ergibt [2, 4, 6, 8]

  2. Es wird auch für einige aktive Datensatzoperationen in Ruby verwendet. Zum Beispiel haben wir ein Cart und LineItem Modell als Cart has_many line_items verbunden. Cart.find(A).line_items gibt ein ActiveRecord::Associations-Objekt mit LineItems zurück, das zu Cart 'A' gehört.

Um nun einen weiteren Artikel (X) zum Warenkorb (A) hinzuzufügen (oder sagen wir: zuzuordnen),

Cart.find(A).line_items << LineItem.find(X)
  1. Jetzt fügen wir ein weiteres LineItem zum gleichen Warenkorb 'A' hinzu, aber dieses Mal werden wir kein line_item Objekt erstellen (ich meine, wir werden kein activerecord Objekt manuell erstellen)

    Cart.find(A).line_items << LineItem.new

Im obigen Code << wird das Objekt gespeichert und an die linke Seite des aktiven Datensatz-Assoziations-Arrays angehängt.

Und viele andere, die bereits in den obigen Antworten behandelt werden.

2voto

maicher Punkte 2555

Außerdem ist seit Ruby 2.6 die << Methode ist auch definiert für Proc .

Proc#<< erlaubt es, zwei oder mehr Procs zusammenzustellen.

1voto

VeronikaS Punkte 151

Es bedeutet an das Ende anfügen (append).

a = [1,2,3]
a << 4
a = [1,2,3,4]

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