代码编写注意点
一个功能可以用内置函数完成,尽量使用它而不是自己编写 函数。系统提供的函数
. 如果某个功能对性能要求很高,可以考虑用扩展来实现。
. 函数调用开销较大,因此不要过分封装。有些功能,如果需要调用的次数很多本身又只用 、
行代码就行实现的,建议就不要封装调用了。
. 不要过分迷恋各种设计模式,如上一条描述,过分的封装会带来性能的下降。需要考虑两者的权衡。
有自己的特点,切不可东施效颦,过分效仿 的模式。
. 函数不宜嵌套过深,递归使用要谨慎。
. 伪函数性能很高,同等功能实现下优先考虑。比如用 代替
. 函数返回引用没有太大意义,也起不到实际作用,建议不予考虑。
. 类成员方法效率不比普通函数低,因此不用担心性能损耗。建议多考虑静态方法,可读性及安全性
都更好。
. 如不是特殊需要,参数传递都建议使用传值而不是传引用。当然,如果参数是很大的数组且需要修
改时可以考虑引用传递。
.用单引号代替双引号来包含字符串,这样做会更快一些。因为 会在双引号包围的字符串中搜寻
变量,单引号则不会,注意:只有 能这么做,它是一种 可以把多个字符串当作参数的“函数” 译注:
手册中说 是语言结构,不是真正的函数,故把函数加上了双引号!。
":在单引号中, 不会自动搜寻变量、转义字符等,因此效率上快很多。而一般来说字符串是没有
变量的,所以使用双引号会导致性能不佳。
.#$%&'&(的速度是#$%'(的 倍。后者会先判断 ' 这个宏是否存在,如果不存在则自动转变
为字符串。
.比 )快,并且使用 的多重参数 译注:指用逗号而不是句点!代替字符串连接,比如
#*#。
":如果使用 ##+就会需要 引擎首先把所有的变量连接起来,然后在输出,而
#*#,引擎就会按照循序输出他们
., 循环最好运用 - 代替。
": 像 .)、/) 这样的操作其实是 0 !的,因此不会带来太多消耗,当然避免每次循环都计算
是比较好的策略。最好用 - 代替 -,这个效率更高,如果考虑到 - ##!每
次拷贝的消耗,可以使用 - #1#!这样的引用。
.注销那些不用的变量尤其是大数组,以便释放内存。
":如果没有记错的话,.) #!不会立刻释放内存,但随时释放是个好习惯。
.尽量避免使用2,,./'。