- 博客(2)
- 收藏
- 关注
原创 值类型和引用类型的一点真相
变量的值在它声明时的位置存储,实例变量的值总是存储在实例本身存储的地方 栈:局部变量(比如局部声明的值类型变量,比如指向引用类型实例的指针) 堆:引用类型实例、静态变量(引用类型实例里的值类型的值当然也在堆上) 值类型不能再派生,引用类型可以再派生 值类型不需要额外信息描述类型 引用类型的对象包含一个数据块标识实际类型 参数传递 引用传递:调用的方法可以通过更改其参数值,来改变调用者的变量值。定义很复杂,涉及左值。 引用类型作为方法参数使用时,默认以值传递的方式,但值本身是一个引用 装..
2020-06-03 18:33:49 192
原创 理解lua迭代器
基本上把Programming in Lua的18章啃下来就可以了,这部分看起来好理解,其实有点绕。 迭代器其实是一个生成器,为每次迭代提供连续的值,这就需要在连续调用之间保存一些状态(比如更新的下标值,后面会叫它控制变量),闭包可以提供这个机制。比如最简单的迭代器和其使用: function values(t) local i = 0 return function() i = i + 1; return t[i] end end iter = values(t) -- 创建迭代器 while
2020-06-03 18:01:43 698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人