Hi all, how to understand the following error?
set city(Guang zhou) 'Guangdong'
wrong # args: should be 'set varName ?newValue?'
set city(Guang\ zhou) 'Guangdong'
Guangdong
Why space cannot exist in array element index?
Roy
Array names (also variable name, proc name) must be one word
As tcl definition, string between 2 spaces is a word, or between 2 quotes or 2 braces
\ is a way to concate special characters to a word, so
Guang\ zhou
Is same as
'Guang zhou'
and same as
{Guang zhou}
is a word.
but
Guang zhou
are 2 words
Array names (also variable name, proc name) must be one word As tcl definition, string between 2 spaces is a word, or between 2 quotes or 2 braces \ is a way to concate special characters to a word, so Guang\ zhou Is same as 'Guang zhou' and same as {Guang zhou} is a word. but Guang zhou are 2 words
Array names (also variable name, proc name) must be one word
As tcl definition, string between 2 spaces is a word, or between 2 quotes or 2 braces
\ is a way to concate special characters to a word, so
Guang\ zhou
Hi @tinh
I try to use 'Guang zhou' or {Guang zhou}, the same error. However when using Guang,zhou, it is ok. How to understand?
Maybe :
set 'city(Guang zhou)' GuangZhou
so 'city(Guang zhou)' is a variable name, it is one word
array names ok to have multiple words
Maybe : set 'city(Guang zhou)' GuangZhou so 'city(Guang zhou)' is a variable name, it is one word array names ok to have multiple words
set 'city(Guang zhou)' GuangZhou
so 'city(Guang zhou)' is a variable name, it is one word
array names ok to have multiple words
I have tried your suggestion.
set 'city(Guang zhou)' 'Guangdong' it is ok.
How to understand why the previous statements were wrong?
Just understand as whatever you want.
If you can't, you don't need it to learn tcl, simply neglect all spaces.