[linux-l] Re: Ruby: sehr cool, aber laaaahm... wie geht's schneller?! - D?

Oliver Bandel oliver at first.in-berlin.de
Mo Aug 28 00:44:48 CEST 2006


On Sun, Aug 27, 2006 at 11:06:28PM +0200, Steffen Dettmer wrote:
> * Oliver Bandel wrote on Sun, Aug 27, 2006 at 20:18 +0200:
> > > Und ohne "globale" Variablen kommt man nicht wirklich aus.
> > [...]
> > 
> > Man kann auch Parameter übergeben.  Globale Variablen sind das
> > übelste, was man sich an unfug heraus nehmen kann und sollte es daher
> > sein lassen.
> 
> Und wie macht man z.B. logging?
> 
[...]


Kommt drauf an, was Du unter Logging jetzt verstehst ;-)

Infos in eine Datei schreiben?
Oder an syslogd übergeben? Oder was?

Was muss da global sein, und unter welchen Umständen?


> > > Ob die nun streng genommen global sind oder man das über closures
> > > oder Referenzen auf sonstwas simuliert spielt dann keine Rolle.
> > 
> > Man kann Parameter übergeben.
> 
> Wenn man denn kann, machmal geht das aus verschiedenen Gründen nicht.
> Vielleicht wird ein Modul über callback aufgerufen etc.

Mir dämmert noch nicht, worauf Du hinaus willst.

Kleines Mini-Beipiel wäre nett.


> 
> > Enn ich in einem Modul eine "Variable" auserhalb aller
> > Funktionen und Module definiere, dann ist sie innerhalb
> > der gesamten Datei sichtbar.
> > 
> > Das ist auch schon alles.
> 
> also "nicht wirklich global" oder wie? :)

Nö, nicht wirklich. :)

Nur compilation-unit-"global", also lokal in der Compilation Unit.

In C hat man auch Kapselung durch Datei, also compilation unit,
jedenfalls wenn man mit static deklariert.
Nur, weil in der ganzen Datei etwas bekannt ist, und da quasi "global"
ist, muss es das nicht wirklich sein (im Sinne von in der ganzen Software
global).

Die Frage ist dann also "wie global meint global"?! ;-)

Gruß,
   Oliver



Mehr Informationen über die Mailingliste linux-l