经常vim编辑一些不属于操作用户的文件,就是只有r权限的那种,每次保存都会提示read only。只能先记下来改了什么,然后再退出,然后 sudo vim 再做保存。
Lua数据结构 — lua_State(六)
前面各种Lua的数据类型基本都说得差不多了,剩下最后一个数据类型:lua_State,我们可以认为是”脚本上下文”,主要是包括当前脚本环境的运行状态信息,还会有gc相关的信息。
Lua数据结构 — Udata(五)
Udata负责存储userdata的数据,这部分其实很简单,但是为了保证系列文章的完整性,还是写一篇出来补全。
Lua数据结构 — 闭包(四)
前面几篇文章已经说明了Lua里面很常用的几个数据结构,这次要分享的也是常用的数据结构之一 – 函数的结构。函数在Lua里也是一种变量,但是它却很特殊,能存储执行语句和被执行,本章主要描述Lua是怎么实现这种函数的。
Lua数据结构 — Table(三)
前面(一)、(二)里面其实已经把一些常用的数据类型(数值、布尔、字符串)说明了,这次要描述的是Table,Table在Lua里是一种常用的数据类型,是Lua里的精髓之一,其效率必须得到保证,而实现这种支持任意类型key和value的Table也是较为复杂的。
Lua数据结构 — TValue(一)
数据结构的设计,在一定程度上奠定了整个系统的设计,所以决定写一个对Lua主要数据结构的分析文章,本来打算写一篇就好了,但是每个数据类型其实都有点复杂,一篇的话篇幅太长,所以就拆开几篇来写了。
Lua 全局变量的那些事儿
了解Lua metatable 元表
参考lua手册,metatable
是被译作元表,Lua 中的每个值都可以用一个 metatable
。这个 metatable
就是一个原始的 Lua table,它用来定义原始值在特定操作下的行为。
metatable
一个 metatable
可以控制一个对象做数学运算操作、比较操作、连接操作、取长度操作、取下标操作时的行为,metatable 中还可以定义一个函数,让 userdata
作垃圾收集时调用它。对于这些操作,Lua 都将其关联上一个被称作事件的指定健。当 Lua 需要对一个值发起这些操作中的一个时,它会去检查值中 metatable 中是否有对应事件。如果有的话,键名对应的值(元方法)将控制 Lua 怎样做这个操作。
Git 常用命令用法:程序员的场景
Git 相比 Subversion,无论概念上还是使用上,复杂度其实是高出一个等级的。为什么这么说?分别看下 git help -a
和 svn help
命令清单的对比,单按这个来看,就如果要掌握所有命令的用法,Git 的学习曲线绝对是比 Subversion 高的。尽管如此,但还是有越来越多项目开始用 Git 来做源码管理了。
实际中,我们用到的的 Git 命令还是很有限的,可能也就 git help
中那些而已。下面就类似 SVN命令用法:程序员的场景 一样,结合实际场景说下 Git 的常用命令用法。