lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


You're not changing the string "blah", you're changing the variable
myName (which is actually an entry in the global table). You can do a =
1; a = 2, overwriting a, because variables (both local and global) are
mutable in Lua (unless you use <const>), however this won't change 1 to
suddenly be 2. It works the same with strings - there is no way to
change part of a string, changing the contents of all variables holding
the string. Try e.g. a = "str" and b = "str", then overwrite a =
"different str" - b hasn't changed, because strings are immutable.

On 25.05.22 18:02, Duke Normandin wrote:
On Wed, 25 May 2022 16:48:08 +0200
Lars Müller <appgurulars@gmx.de> wrote:

It doesn't say "Lua variables are immutable", /it says that
strings are immutable like in Python/, which is the case - there
is no way to change the value of a string, you can only create
new strings.

On 25.05.22 16:45, Duke Normandin wrote:
Lua noob here! Reading Lua primer at learnxinyminures.com to
start off with.
It says that Lua variables are immutable like in Python.
However, in the Lua REPL, I can change any value I set. Maybe I
should be reading a more recent tutorial? TIA ...
My mistake! However I set myName = 'blah' which is a string!
Correct? I can then say myName = 'blah-blau' and no error message
shows up.
I'm missing something!