Lua的函数的定义、math数学函数、lua字符串的处理、lua支持的字符串类、模式串中的特殊字符_学习笔记04

Stella981
• 阅读 759

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

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

Lua的函数的定义、math数学函数、lua字符串的处理、lua支持的字符串类、模式串中的特殊字符_学习笔记04

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)模式串中的特殊字符:

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer
第四章:数学函数、字符和字符串math类Math是final类:在java.lang.Math中,所有数学函数都是静态方法在一个java程序中,java.lang包中的所有类是隐式导入的。三角函数方法『此处需要插入图』指数函数方法『此处需要插入图』取整方法
Easter79 Easter79
3年前
TypeScript 真香系列——接口篇
接口带来了什么好处好处One——过去我们写JavaScriptJavaScript中定义一个函数,用来获取一个用户的姓名和年龄的字符串:constgetUserInfofunction(user){returnname:${user.name},age:${user
Stella981 Stella981
3年前
Python基础(六)
1函数1.1函数的分类函数可以分成三种:内置函数(BIF):解释器中内置的函数,可以直接通过函数名调用,如len().模块函数:定义在模块中的函数,通过模块名调用,如math.sin().用户自定义函数.1.2函数与方法函数是指在类外定义的,可以独立调用的
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
3年前
Lua学习笔记_String(一)
   Lua中的字符串可以包含一个字母也可以是一整本书。用一个字符串表示100K甚至1M的内容在Lua中并不罕见。     在Lua中,字符串是字节的序列。Lua内核中不关心这些字节是什么编码格式。Lua只是单纯地以8bit为单位保存它们,且每个字节可以是任意数字,包括0。这就意味着我们可以用字符串保存任意二进制数据。也可以将Unicode字符串保存为任
Stella981 Stella981
3年前
HIVE之UDF函数开发
1为什么要写UDF函数    有时候hive自带的函数不能满足当前需要,需要自定义函数来解决问题2UDF,UDAF,UDTF的比较UDF操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)。
Stella981 Stella981
3年前
Lua 函数
【1】函数定义Lua函数定义格式如下:1optional_function_scopefunctionfunction_name(argument1,argument2,argument3...,argumentn)2function_body3returnresult_params_comma_
Wesley13 Wesley13
3年前
PHP_50则
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
Wesley13 Wesley13
3年前
2019学期第八周编程总结
61函数实现字符串逆序(15分)本题要求实现一个字符串逆序的简单函数。函数接口定义:voidf(charp);函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样例:include<stdi
Wesley13 Wesley13
3年前
C语言常用函数大全
一、数学函数调用数学函数时,要求在源文件中包下以下命令行:include<math.h函数原型说明功能返回值说明intabs(intx)求整数x的绝对值计算结果doublefabs(doublex)求双精度实数x的绝对值计算结果doubleacos(doub