Lua的函数的定义、math数学函数

  • 定义函数

function [function name] (param1,param2)

    [function code]

--定义一个函数用来求的两个数字的和

function plus (num1,num2)

return num1+num2

end

res = plus(54,12)

print(res)

  • Lua内置提供了一些常用函数

  1.数学处理的math相关函数

  2.字符串处理的string 相关函数

  3.表处理的table相关函数

  4.文件操作的io相关函数

(1)数学运算函数

print(math.abs(-15))  --取绝对值

print(math.max(11,22,05,655,85)) --求最大的值

abs

取绝对值

math.abs(-15)

15

acos

反余弦函数

math.acos(0.5)

1.04719755

asin

反正弦函数

math.asin(0.5)

0.52359877

atan2

x / y的反正切值

math.atan2(90.0, 45.0)

1.10714871

atan

反正切函数

math.atan(0.5)

0.463647609

ceil

不小于x的最大整数

math.ceil(5.8)

6

cosh

双曲线余弦函数

math.cosh(0.5)

1.276259652

cos

余弦函数

math.cos(0.5)

0.87758256

deg

弧度转角度

math.deg(math.pi)

180

exp

计算以e为底x次方值

math.exp(2)

2.718281828

floor

不大于x的最大整数

math.floor(5.6)

5

fmod (mod)

取模运算

math.mod(14, 5)

4

frexp

把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n

math.frexp(10.0)

0.625    4

ldexp

计算value * 2的n次方

math.ldexp(10.0, 3)

80 = 10 * (2 ^3)

log10

计算以10为基数的对数

math.log10(100)

2

log

计算一个数字的自然对数

math.log(2.71)

0.9969

max

取得参数中最大值

math.max(2.71, 100, -98, 23)

100

min

取得参数中最小值

math.min(2.71, 100, -98, 23)

-98

modf

把数分为整数和小数

math.modf(15.98)

15    98

pow

得到x的y次方

math.pow(2, 5)

32

rad

角度转弧度

math.rad(180)

3.14159265358

random

获取随机数

math.random(1, 100)
math.random(100)

获取1-100的随机数

randomseed

设置随机数种子

math.randomseed(os.time())

在使用math.random函数之前必须使用此函数设置随机数种子

sinh

双曲线正弦函数

math.sinh(0.5)

0.5210953

sin

正弦函数

math.sin(math.rad(30))

0.5

sqrt

开平方函数

math.sqrt(16)

4

tanh

双曲线正切函数

math.tanh(0.5)

0.46211715

tan

正切函数

math.tan(0.5)

0.5463024

(2)字符串处理的相关函数

  • string.find() 函数用于在一个给定的目标字符串中搜索一个模式。最简单的模式就是一个单词,它只会匹配与自己完全相同的拷贝。当find找到一个模式后,它会返回两个值:匹配到的起始索引和结尾索引;如果没有找到任何匹配,它就返回nil

     eg:  local str = "Hello World"

    local i, j = string.find(str,"Hello") -- 返回Hello在str中的起始位置和终止位置

    print(i, j)

  • find的兄弟match函数,string.match与string.find非常相似,它也是用于在一个字符串中搜索一种模式。区别在于string.match返回的是目标字符串中与模式相匹配的那部分子串,并不是该模式所在的位置。示例代码:

    local str = "Hello12345World"

    local subStr = string.match(str,"%d+")

    print(subStr) --结果为 12345

  • 比较全的字符串处理,如下图所示:

Eg: string = "mengmeng xia"     --替换字符串用 string.gsub
   newstring = string.gsub(string,"xia","da")
   print("The new string is",newstring)

(3)Lua所支持的所有字符类. 任意字符

    %s 空白符
    %p 标点字符
    %c 控制字符
    %d 数字
    %x 十六进制数字
    %z 代表0的字符
    %a 字母
    %l 小写字母
    %u 大写字母
    %w 字母和数字

(4)模式串中的特殊字符:

  ( ) . % + - * ? [ ^ $
  '%' 用作特殊字符的转义字符
  '%.' 匹配点;
  '%%' 匹配字符 '%'。

最新文章

  1. js获取ip地址
  2. Linux学习四:UDP编程(上)
  3. C语言杂谈(三)存储类别
  4. Silverlight页面通过继承扩展实现
  5. 安装Ubuntu 14.04后要做的5件事情
  6. stream转byte数组几种方式
  7. lua 学习笔记(一)
  8. 【百度地图API】如何制作公交线路的搜索?如331路
  9. dma_alloc_coherent (建立一致性 DMA 映射函数)
  10. python 备份文件脚本
  11. apt-get软件包管理命令 和 apt-key命令
  12. 使用kbmmw 生成客户端delphi函数原型
  13. 谷歌浏览器隐藏url前缀问题
  14. [20180928]ora-01426(补充).txt
  15. stingray 页面布局与设计
  16. keepalived + nginx(负载均衡反向代理HTTP,https) + tomcat(HTTP,https)
  17. TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)
  18. Sublime Text 3安装完美的Vim支持,ActualVim/NeoVim
  19. 关于SVN浏览服务器的错误
  20. Socket代码

热门文章

  1. 利用DTrace实时检测MySQl
  2. AppFuse 3常见问题与解决方法
  3. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
  4. UVA 11021 - Tribles(概率递推)
  5. 窗口函数 SELECT - OVER Clause (Transact-SQL)
  6. nyoj--496--巡回赛(拓扑排序)
  7. IntelliJ IDEA :解决idea导入项目爆红
  8. Dirichlet's Theorem on Arithmetic Progressions
  9. Python 37 基于多线程实现套接字 、gevent 、单线程下实现并发的套接字通信
  10. D - Replacement