Article View: pl.comp.lang.tcl
Article #383Re: unknown dla zmiennych
From: Googie
Date: Mon, 15 May 2006 12:57
Date: Mon, 15 May 2006 12:57
41 lines
2002 bytes
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-mailReferences:
<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