Die Bedeutung von '*' bei Verwendung als Parameter (nicht wie * arg, nur *) [duplizieren]

8

Als ich den Rails-Code gelesen habe, habe ich das gefunden

%Vor%

Was macht die * ? :O Ich weiß, was passiert, wenn wir es wie *args verwenden, aber in diesem Fall ist es einfach * .

ref Ссылка

    
Takehiro Adachi 18.02.2013, 15:07
quelle

2 Antworten

2

In diesem speziellen Fall übernimmt save keine Argumente. Das passiert mit einem nackten Splat. Aber wie Sie vielleicht wissen, akzeptiert der Aufruf von save für ein ActiveRecord -Modell Optionen, weil diese Methode hier von ActiveRecord::Validations überschrieben wird:

Ссылка

%Vor%     
Learner 18.02.2013, 15:11
quelle
8

Es bedeutet dasselbe wie bei einem Parameternamen: verschlingt alle verbleibenden Argumente. Außer, da es keinen Namen gibt, an den sie gebunden werden können, sind die Argumente nicht zugänglich. Mit anderen Worten: Es braucht eine beliebige Anzahl von Argumenten, ignoriert sie aber alle.

Beachten Sie, dass eine Möglichkeit ist, die Argumente zu verwenden: Wenn Sie super ohne eine Argumentliste aufrufen, werden die Argumente unverändert an die Superklassenmethode weitergeleitet.

    
Jörg W Mittag 18.02.2013 15:26
quelle

Tags und Links