lua 值传递,引用传递注意事项 |
您所在的位置:网站首页 › lua函数参数是临时变量 › lua 值传递,引用传递注意事项 |
最近项目中lua编写居多,lua作为作为游戏人必备的语言之一,特性就不描述了,在此就发现许多参数传递中的坑,特此记录下
lua中参数传递分为两种 : 1.值传递 将值重新拷贝一份赋给新变量,即新变量拥有全新的内存地址,与原来的值无关联,改变新变量不会影响老变量的值 2.引用传递 引用传递则与值传递相反,引用传递,每次赋值时,只是将内存地址的引用赋值给新变量,新旧变量共同引用同一个 值,指向同一块内存的值,改变新变量得值,即是改变了内存地址中的值,老变量中的值也跟着改变 在lua中除了table是引用传递外,其余基本都是值传递:例如: 引用传递 local temp_table = { "张三", "李四", "王五", "赵六", "钱七", } local new_table = temp_table for i,v in ipairs(temp_table) do if v == "王五" then table.remove(new_table, i) break end end for i,v in ipairs(temp_table) do print(i,v) end 输出结果为 1 张三 2 李四 3 赵六 4 钱七 [Finished in 0.6s] 值传递 local str = "张三李四王五赵六" local new_str = str new_str = string.gsub(new_str,"王五","隔壁老王") print(str,new_str)
输出结果 张三李四王五赵六 张三李四隔壁老王赵六 [Finished in 0.1s] |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |