Google Mail Kalender Text & Tabellen Reader Web Mehr »
Kürzlich besuchte Gruppen | Hilfe | Anmelden
Google Groups-Startseite
Same name for class and instance method
Gegenwärtig gibt es mehrere Themen in dieser Gruppe, die zuerst angezeigt werden sollen. Damit dieses Thema zuerst angezeigt werden kann, muss diese Option bei einem anderen Thema entfernt werden.
Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten. Versuchen Sie es erneut.
Kennzeichnen
  2 Nachrichten - Alle ausblenden  -  Alles übersetzen in die Sprache: Übersetzt (alle Originale anzeigen)
Bei der Gruppe, für die Sie eine Mitteilung verfassen, handelt es sich um eine Usenet-Gruppe. Wenn Sie in dieser Gruppe Nachrichten posten, ist Ihre E-Mail-Adresse für jeden im Internet sichtbar
Ihre Antwort wurde nicht gesendet.
Die Nachricht wurde übermittelt.
 
Von:
An:
Cc:
Nachtrag zu:
Cc hinzufügen | Nachtrag hinzufügen zu | Betreff bearbeiten
Betreff:
Bestätigung:
Geben Sie zur Bestätigung die im folgenden Bild angezeigten Zeichen oder die durchgesagten Zahlen ein, indem Sie auf das Eingabesymbol klicken. Hören Sie zu und geben Sie die gehörten Zahlen ein
 
Ralph Shnelvar  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 22 Nov. 2009, 08:20
Newsgroups: comp.lang.ruby
Von: Ralph Shnelvar <ral...@dos32.com>
Datum: Sun, 22 Nov 2009 02:20:47 -0500
Lokal: So 22 Nov. 2009 08:20
Betreff: Same name for class and instance method
Newbie here.

Consider the following two "say" methods.

irb(main):020:0> class Test2
irb(main):021:1>   def self.say(block)
irb(main):022:2>     block.call(self.class)
irb(main):023:2>   end
irb(main):024:1>   def say(block)
irb(main):025:2>     block.call(self.class)
irb(main):026:2>   end
irb(main):027:1> end
=> nil
irb(main):028:0> Test2.new.say(c)
Test2
=> nil
irb(main):029:0> Test2.say(c)
Class

(1) Do I have the nomenclature correct?  Are the two "say" methods a class
and instance method?

(2) Is this valid Ruby both stylistically and semantically?


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Robert Klemme  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 22 Nov. 2009, 11:29
Newsgroups: comp.lang.ruby
Von: Robert Klemme <shortcut...@googlemail.com>
Datum: Sun, 22 Nov 2009 11:29:25 +0100
Lokal: So 22 Nov. 2009 11:29
Betreff: Re: Same name for class and instance method
On 22.11.2009 08:20, Ralph Shnelvar wrote:

Yes.

> (2) Is this valid Ruby both stylistically and semantically?

First of all, using the same name for a class and instance method can
cause confusion, so it's probably not a too good idea in the general
case.  That doesn't mean that there aren't valid use cases for this though.

The way you seem to be using a block (definition of c is missing in your
example) is a bit unusual.  Usually you would do

def say
   yield self.class
end

or

def say(&block)
   block.call self.class
   # or shorter: block[self.class]
end

And invoke it like

Test2.say do |x|
   puts x
end

Again, it may make sense to invoke the method the way you did but the
far more common idiom is the one I have shown.

Kind regards

        robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Ende der Nachrichten
« Zurück zu Diskussionen « Neueres Thema     Älteres Thema »

Eine Gruppe erstellen - Google Groups - Google-Startseite - Nutzungsbedingungen - Datenschutzbestimmungen
©2010 Google