文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>awk定义局部变量

awk定义局部变量

时间:2010-11-21  来源:ccjsj1

在awk中,所有变量都是全局变量,本来是没有局部变量的概念的。这样就会造成自定义函数中的变量有可能和主程序其他部分重名,因而发生错误。

1.每个函数里面的变量都加上特定的前缀,避免变量名的重复,但是这是一个笨办法,这样会造成代码的易读性下降,同时也增加了输入的麻烦。


2.利用局部变量的办法来解决,如果函数内的变量生存周期限制在函数内部的话,这个问题就简单了。通过查看资料,得到“Awk 提供了一种蹩脚的方式来定义局部变量,那就是通过函数的参数列表”。在gawk手册里面也有如下的说明,gawk 手册中 “USER-DEFINED FUNCTIONS” 一节中找到了相似的一段话:“由于原来的 Awk 不支持函数,局部变量在 Awk 中的实现相当笨拙,通过给函数定义额外的参数来实现。按照惯例,在真实参数后面多加几个空格,以分隔真实参数与局部变量声明。”


具体实现如下:
首先定义function
function factorial(n, _ARGVEND_, i, s) #添加_ARGVEND_ 分割传递的参数和局部变量,_ARGVEND_后面的就是自定义的局部变量
接着调用时 value = factorial(i);参数表里面只有传递一个参数
按照上述的办法,在function factorial里面,变量i,s就完全是一个局部变量了,不管脚本的其他部分是否定义了重名的变量,都能够保证这个函数的调用是完全安全的。

转自:http://blog.chinaunix.net/u1/42925/showart_476395.html

相关阅读 更多 +
排行榜 更多 +
野餐大冒险正版

野餐大冒险正版

动作格斗 下载
红月主宰单职业

红月主宰单职业

角色扮演 下载
英雄公会下载安装

英雄公会下载安装

角色扮演 下载