Why space cannot exist in array element index?
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
Answers
-
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
0 -
Altair Forum User said:
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
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?
Roy
0 -
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
0 -
Altair Forum User said:
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
Hi @tinh
I have tried your suggestion.
set 'city(Guang zhou)' 'Guangdong' it is ok.
How to understand why the previous statements were wrong?
Roy
0 -
Just understand as whatever you want.
If you can't, you don't need it to learn tcl, simply neglect all spaces.
0