程序开发中都有哪些常用的函数呢?

程序开发中都有哪些常用的函数呢?,第1张

常用的函数有很多,比如下面几个非常常用:

void lua_createtable (lua_State *L, int narr, int nrec)

创建一张新的空表压栈。 参数 narr 建议了这张表作为序列使用时会有多少个元素; 参数 nrec 建议了这张表可能拥有多少序列之外的元素。 Lua 会使用这些建议来预分配这张新表。 如果你知道这张表用途的更多信息,预分配可以提高性能。 否则,你可以使用函数 lua_newtab

把函数导出成二进制代码块 。 函数接收栈顶的 Lua 函数做参数, 然后生成它的二进制代码块。 若被导出的东西被再次加载, 加载的结果就相当于原来的函数。 当它在产生代码块的时候, lua_dump 通过调用函数 writer 来写入数据,后面的 data 参数会被传入 writer 。

如果 strip 为真, 二进制代码块将不包含该函数的调试信息。

最后一次由 writer 的返回值将作为这个函数的返回值返回; 0 表示没有错误。

该函数不会把 Lua 函数d出堆栈。

int lua_error (lua_State *L)

以栈顶的值作为错误对象,抛出一个 Lua 错误。 这个函数将做一次长跳转,所以一定不会返回

lua_Alloc lua_getallocf (lua_State *L, void **ud)

返回给定状态机的内存分配器函数。 如果 ud 不是 NULL , Lua 把设置内存分配函数时设置的那个指针置入 *ud 。

lua_getfield

[-0, +1, e]

int lua_getfield (lua_State *L, int index, const char *k)

把 t[k] 的值压栈, 这里的 t 是索引指向的值。 在 Lua 中,这个函数可能触发对应 "index" 事件对应的元方法 。

函数将返回压入值的类型。

lua_getextraspace

[-0, +0, –]

void *lua_getextraspace (lua_State *L)

返回一个 Lua 状态机中关联的内存块指针。 程序可以把这块内存用于任何用途;而 Lua 不会使用它。

每一个新线程都会携带一块内存, 初始化为主线程的这块内存的副本。

默认配置下,这块内存的大小为空指针的大小。 不过你可以重新编译 Lua 设定这块内存不同的大小。

table 是一个关联数组, 也就是说,这个数组不仅仅以数字做索引,除了 nil 和 NaN 之外的所有 Lua 值 都可以做索引。 (Not a Number 是一个特殊的数字,它用于表示未定义或表示不了的运算结果,比如 0/0。) 表可以是 异构 的; 也就是说,表内可以包含任何类型的值( nil 除外)。 任何键的值若为 nil 就不会被记入表结构内部。 换言之,对于表内不存在的键,都对应着值 nil 。

表是 Lua 中唯一的数据结构, 它可被用于表示普通数组、序列、符号表、集合、记录、图、树等等。 对于记录,Lua 使用域名作为索引。 语言提供了 a.name 这样的语法糖来替代 a["name"] 这种写法以方便记录这种结构的使用。 在 Lua 中有多种便利的方式创建表(参见 §3.4.9)。

我们使用 序列 这个术语来表示一个用 {1..n} 的正整数集做索引的表。 这里的非负整数 n 被称为该序列的长度(参见 §3.4.7)。

和索引一样,表中每个域的值也可以是任何类型。 需要特别指出的是:既然函数是一等公民,那么表的域也可以是函数。 这样,表就可以携带 方法 了。 (参见 §3.4.11)。

索引一张表的原则遵循语言中的直接比较规则。 当且仅当 i 与 j直接比较相等时 (即不通过元方法的比较), 表达式 a[i] 与 a[j] 表示了表中相同的元素。 特别指出:一个可以完全表示为整数的浮点数和对应的整数相等 (例如:1.0 == 1)。 为了消除歧义,当一个可以完全表示为整数的浮点数做为键值时, 都会被转换为对应的整数储存。 例如,当你写 a[2.0] = true 时, 实际被插入表中的键是整数 2 。 (另一方面,2 与 "2" 是两个不同的 Lua 值, 故而它们可以是同一张表中的不同项。)

表、函数、线程、以及完全用户数据在 Lua 中被称为 对象: 变量并不真的 持有 它们的值,而仅保存了对这些对象的 引用。 赋值、参数传递、函数返回,都是针对引用而不是针对值的 *** 作, 这些 *** 作均不会做任何形式的隐式拷贝。

库函数 type 用于以字符串形式返回给定值的类型

引用一个叫 var 的自由名字(指在任何层级都未被声明的名字) 在句法上都被翻译为 _ENV.var 。 此外,每个被编译的 Lua 代码块都会有一个外部的局部变量叫 _ENV (参见 §3.3.2), 因此,_ENV 这个名字永远都不会成为一个代码块中的自由名字。

在转译那些自由名字时,_ENV 是否是那个外部的局部变量无所谓。 _ENV 和其它你可以使用的变量名没有区别。 这里特别指出,你可以定义一个新变量或指定一个参数叫这个名字。 当编译器在转译自由名字时所用到的 _ENV , 指的是你的程序在那个点上可见的那个名为 _ENV 的变量。 (Lua 的可见性规则参见 §3.5)

被 _ENV 用于值的那张表被称为 环境。

Lua 保有一个被称为 全局环境 特别环境。它被保存在 C 注册表 (参见 §4.5)的一个特别索引下。 在 Lua 中,全局变量 _G 被初始化为这个值。 (_G 不被内部任何地方使用。)

当 Lua 加载一个代码块,_ENV 这个上值的默认值就是这个全局环境 (参见 load)。 因此,在默认情况下,Lua 代码中提及的自由名字都指的全局环境中的相关项 (因此,它们也被称为 全局变量 )。 此外,所有的标准库都被加载入全局环境,一些函数也针对这个环境做 *** 作。 你可以用 load (或 loadfile)加载代码块,并赋予它们不同的环境。 (在 C 里,当你加载一个代码块后,可以通过改变它的第一个上值来改变它的环境。)

计算机函数公式大全

计算机函数公式大全,办公软件都是有计算的函数公式的,Excel自带了很多强大的函数,它为我们的工作节省了很多时间,想要学会Excel就需要掌握各种函数公式,以下分享计算机函数公式大全。

计算机函数公式大全1

第一个求和函数“SUM”,格式为“=SUM(X:Y)”,使用的时候,在函数框中输入“=SUM(X:Y)”,X、Y为对应的求和单元格位置,见下图。

第二个求算数平均值函数“AVERAGE”,格式为“=AVERAGE(X:Y)”,使用的时候,在函数框中输入“=AVERAGE(X:Y)”,X、Y为对应的求算数平均值单元格位置,见下图。

第三个求包含数字单元格个数函数“COUNT”,格式为“=COUNT(X:Y)”,使用的时候,在函数框中输入“=COUNT(X:Y)”,X、Y为对应的求包含数字单元格个数的单元格位置,见下图。

第四个求最大值函数“MAX”,格式为“=MAX(X:Y)”,使用的时候,在函数框中输入“=MAX(X:Y)”,X、Y为对应的求最大值单元格位置,见下图。

第五个求数值中的最小值函数“MIN”,格式为“=MIN(X:Y)”,使用的时候,在函数框中输入“=MIN(X:Y)”,X、Y为对应的求数值中的最小值单元格位置,见下图。

计算机函数公式大全2

1、ABS函数

函数名称:ABS

主要功能:求出相应数字的绝对值。

使用格式:ABS(number)

参数说明:number代表需要求绝对值的数值或引用的单元格。

应用举例:如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如-100),B2中均显示出正数(如100)。

特别提醒:如果number参数不是数值,而是一些字符(如A等),则B2中返回错误值“#VALUE!”。

2、AND函数

函数名称:AND

主要功能:返回逻辑值:如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。

使用格式:AND(logical1,logical2, ...)

参数说明:Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。

应用举例:在C5单元格输入公式:=AND(A5>=60,B5>=60),确认。如果C5中返回TRUE,说明A5和B5中的数值均大于等于60,如果返回FALSE,说明A5和B5中的数值至少有一个小于60。

特别提醒:如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。

3、AVERAGE函数

函数名称:AVERAGE

主要功能:求出所有参数的算术平均值。

使用格式:AVERAGE(number1,number2,……)

参数说明:number1,number2,……:需要求平均值的数值或引用单元格(区域),参数不超过30个。

应用举例:在B8单元格中输入公式:=AVERAGE(B7:D7,F7:H7,7,8),确认后,即可求出B7至D7区域、F7至H7区域中的数值和7、8的平均值。

特别提醒:如果引用区域中包含“0”值单元格,则计算在内;如果引用区域中包含空白或字符单元格,则不计算在内。

计算机函数公式大全3

1、RANK函数

RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零排列,即2、1和3。

需要注意的是:相同数值用RANK函数计算得到的'序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。

2、COUNTIF函数

COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。

仍以上面的为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,”>“&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。

此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176。7”、“>167。3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。

3、IF函数

Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以上例中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排列”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10943392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存