Deutsch English Français Italiano |
<v6e4p3$bk06$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feeder1.cambriumusenet.nl!feed.tweak.nl!217.73.144.44.MISMATCH!feeder.ecngs.de!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: greg <gregor.ebbing@gmx.de> Newsgroups: comp.lang.tcl Subject: Re: oo::class - my variable vs variable Date: Sun, 7 Jul 2024 15:21:39 +0200 Organization: A noiseless patient Spider Lines: 222 Message-ID: <v6e4p3$bk06$1@dont-email.me> References: <Uh2cncwZ4ewS0Rv7nZ2dnZfqn_udnZ2d@brightview.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 07 Jul 2024 15:21:39 +0200 (CEST) Injection-Info: dont-email.me; posting-host="dd5c4f34dddbde65219f8c3d73f17eed"; logging-data="380934"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OejGAPI1t/mS4/zmC+jf3LbZq1M2f6Ys=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:PQrg57y//cWuzpicwi018ZJgmCA= Content-Language: de-DE In-Reply-To: <Uh2cncwZ4ewS0Rv7nZ2dnZfqn_udnZ2d@brightview.co.uk> Bytes: 7533 Am 04.07.24 um 09:17 schrieb Mark Summerfield: > I am trying to learn TclOO. I have created two classes P and Q which > appear to have identical behavior. Class P uses "my variable" and Q uses > "variable". Can someone explain the difference between them. (I am > familiar with Python and Go if that's any help with explaining.) > Hello Mark, I have replaced your demo, hope that's OK. Different when there are multiple variables as arguments. Originally I expected the opposite behavior. I had misunderstood that until now. #DemoClass1 and DemoClass2 # difference constructor with variable individually or together # difference output for instanceVar2, no initialization with 15 (DemoClass1) #DemoClass3 and DemoClass4 # no difference with my variable individually or together # in example: # objx1 with my variable, x for DemoClass # objx2 with variable, x for DemoClass oo::class create DemoClass1 { constructor {val1 val2} { variable instanceVar1 instanceVar2 set instanceVar1 $val1 set instanceVar2 $val2 } method incrementInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 incr instanceVar1 incr instanceVar2 } method incrementInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 incr instanceVar1 incr instanceVar2 } method getInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } method getInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } } oo::class create DemoClass2 { constructor {val1 val2} { variable instanceVar1 variable instanceVar2 set instanceVar1 $val1 set instanceVar2 $val2 } method incrementInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 incr instanceVar1 incr instanceVar2 } method incrementInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 incr instanceVar1 incr instanceVar2 } method getInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } method getInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } } oo::class create DemoClass3 { constructor {val1 val2} { my variable instanceVar1 instanceVar2 set instanceVar1 $val1 set instanceVar2 $val2 } method incrementInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 incr instanceVar1 incr instanceVar2 } method incrementInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 incr instanceVar1 incr instanceVar2 } method getInstanceVarsWithMy {} { my variable instanceVar1 instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } method getInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } } oo::class create DemoClass4 { constructor {val1 val2} { my variable instanceVar1 my variable instanceVar2 set instanceVar1 $val1 set instanceVar2 $val2 } method incrementInstanceVarsWithMy {} { my variable instanceVar1 my variable instanceVar2 incr instanceVar1 incr instanceVar2 } method incrementInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 incr instanceVar1 incr instanceVar2 } method getInstanceVarsWithMy {} { my variable instanceVar1 my variable instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } method getInstanceVarsWithVariable {} { variable instanceVar1 variable instanceVar2 return "instanceVar1: $instanceVar1, \ instanceVar2: $instanceVar2" } } puts "DemoClass1" puts " obj11" set obj11 [DemoClass1 new 5 1] $obj11 incrementInstanceVarsWithMy puts "obj11: [$obj11 getInstanceVarsWithMy]" puts " obj12" set obj12 [DemoClass1 new 15 10] $obj12 incrementInstanceVarsWithVariable puts "obj12: [$obj12 getInstanceVarsWithVariable]" puts \n puts "DemoClass2" puts " obj21" set obj21 [DemoClass2 new 5 1] $obj21 incrementInstanceVarsWithMy puts "obj21: [$obj21 getInstanceVarsWithMy]" puts " obj22" set obj22 [DemoClass2 new 15 10] $obj22 incrementInstanceVarsWithVariable puts "obj22: [$obj22 getInstanceVarsWithVariable]" puts \n puts "DemoClass3" puts " obj31" set obj31 [DemoClass3 new 5 1] $obj31 incrementInstanceVarsWithMy puts "obj31: [$obj31 getInstanceVarsWithMy]" puts " obj32" set obj32 [DemoClass3 new 15 10] $obj32 incrementInstanceVarsWithVariable puts "obj32: [$obj32 getInstanceVarsWithVariable]" puts \n ========== REMAINDER OF ARTICLE TRUNCATED ==========