🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.tcl
Article #383

Re: unknown dla zmiennych

#383
From: Googie
Date: Mon, 15 May 2006 12:57
41 lines
2002 bytes
Maciej Sobczak wrote:
> 
> Polecenie unknown pozwala podłączyć się z własnym handlerem na okazję 
> wywołania procedury, która jeszcze nie jest zdefiniowana.
> 
> Chciałbym mieć coś takiego dla zmiennych, czyli jeśli ktoś zawoła 
> $blabla w sytuacji, gdy blabla nie istnieje, to chciałbym, żeby wywołana 
> została moja procedura, która być może tą zmienną zdefiniuje "w locie".
> 
> Wyląda na to, że standardowo czegoś takiego nie ma, a szkoda.
> Ktoś ma może jakiś pomysł?
> 
> 

Niestety używając operatora $ nie uda się. Natomiast można pójść na 
kompromis i używać komendy do odczytu zmiennej, tak jak robi się to za 
pomocą:

set a 1
puts [set a]

Wtedy zamiast set użyć własnej procedury:

proc czytaj {var} {
	uplevel "
		if {[info exists $var]} {
			return [set $var]
		} else {
			set $var ""
			return [set $var]
		}
	"
}
puts "To jest wartość zmiennej a: [czytaj a]"

tyle że to będzie wolniejsze niż sam operator $. Pozostałe metody 
odwołań do zmiennej można nadpisać, bo są to tylko komendy/procedury.

-- 
Pozdrawiam! (Greetings!)
Googie
Technical Details
Message-ID: <e49tng$9nv$1@srv.cyf-kr.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!not-for-mail
References: <e49cbn$qhb$1@sunnews.cern.ch>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!not-for-mail
From: Googie <no@spam.org>
Newsgroups: pl.comp.lang.tcl
Subject: Re: unknown dla zmiennych
Date: Mon, 15 May 2006 14:57:21 +0200
Organization: Academic Computer Center CYFRONET AGH
Lines: 41
Message-ID: <e49tng$9nv$1@srv.cyf-kr.edu.pl>
References: <e49cbn$qhb$1@sunnews.cern.ch>
NNTP-Posting-Host: ip-217-197.ists.pl
Mime-Version: 1.0
X-Trace: srv.cyf-kr.edu.pl 1147697712 9983 87.239.217.197 (15 May 2006 12:55:12 GMT)
X-Complaints-To: news@cyf-kr.edu.pl
NNTP-Posting-Date: Mon, 15 May 2006 12:55:12 +0000 (UTC)
User-Agent: Thunderbird 1.5.0.2 (Windows/20060308)
In-Reply-To: <e49cbn$qhb$1@sunnews.cern.ch>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit