Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
equating variable to array — Gideros Forum

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# equating variable to array

Member
When we equate a variable to an array and do something with a variable, will this affect the array to which we equated it?

for example:
bim={0,1,2}

bom=bim

bom[1]=0

I wrote a lot of code, and in one function we do exactly this thing, somehow it affects the main array

I haven’t met this one before

I always thought that the variable and the array are not linked when equating and accessed this array through _G []

I want to know for sure how it works

## Comments

• Member
Accepted Answer
yes I tested with your example and indeed this changes the value in the original table, I think it is expected!?

To only change the bom table you need to make it separate from bim, something like:
 ```-- tables local bim = {0, 1, 2} local bom = {}   for i = 1, #bim do bom[i] = bim[i] end   print(bim[1]) -- 0 print(bom[1]) -- 0   bom[1] = 3   print(bim[1]) -- 0 print(bom[1]) -- 3```
Hope this answers your question.
my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
• Member
thanks, for some reason I always thought that it works exactly as I described above

strange that I have not encountered this problem before
• Member
Accepted Answer
arrays are actually only pointers, to use the terminology from other languages.
• Maintainer
Accepted Answer
Yes as others said earlier, table/arrays are assigned by reference. If you do want a separate copy of a table, that's called a clone. See http://lua-users.org/wiki/CopyTable
• Member
thanks for answers guys!
finally I figured it out
Sign In or Register to comment.