Lua基础(2)
来源:互联网 发布:sap是什么软件 编辑:程序博客网 时间:2024/06/04 19:21
-------------------------------------------------------算数运算 a = 10 b = -3 r = a % b --a - floor(a/b) * b,结果与与b的符号相同 print(r) a = 10.3 n = a % 1 --去正实数的小数部分:0.3 p = a - n --取正实数的整数部分:10 print(n , p) a = -10.3 n = a % (-1) --去负实数的小数部分:-0.3 p = a - n --取负实数的整数部分:-10 print(n , p) x = math.pi print(x - x%0.01) --取精确到小数点两位的结果:3.14(不会进行四舍五入,直接截取) ------------------------------------------------------- 关系运算 <、>、>=、<=、~=、==-- 对与table/userdata/函数,比较的是引用(是否引用同一个对象),不是内容arr1 = {}; arr1.x = 10; arr1.y = 10arr2 = {}; arr2.x = 10; arr2.y = 10arr3 = arr1print("arr1 == arr2? " .. tostring((arr1 == arr2))) -- falseprint("arr1 == arr2? " .. tostring((arr1 == arr3))) -- true-- tableprint(type(arr1))------------------------------------------------------- 逻辑运算(and、or、not),and(第一个为假,就返回第一个,否则返回第二个)和or(第一个为真就返回第一个,否则返回第二个)都是短路求值print(false and "hello") --falseprint(nil or "hello") --helloprint(false or "hello") --helloprint(4 or "hello") --4print(4 and "hello") --helloif ((type(arr1) == "table") and arr1.x == 10) thenprint("arr1 is a table and arr1.x = " .. arr1.x)end------------------------------------------------------- x = x or vdefault = "default_value"x_value = x_value or defaultprint(x_value)if not x_value then x_value = default endprint(x_value)-------------------------------------------------------a and b or c (前提是b要为真,and的优先级大于or,类似于a ? b : c),a = 10b = 12max = (a > b) and a or b --等价于max(x,y),如果a和b未定义,会报错的print(max, ((a > b)))-------------------------------------------------------tablemy_table = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}for var=1, #my_table doprint("my_table[".. var .. "]=" .. my_table[var]) --索引从1开始endrev_table = {}my_table[0]=100for key, var in pairs(my_table) doprint("pairs <" .. key .. ", " .. var .. ">")rev_table[var] = keyend--table反转print("rev_table is",#rev_table) --结果为0,因为#rev_table计算的是以整数为key的entry的个数for key, var in pairs(rev_table) do print("rev_table[".. key .. "]=" .. var) --索引从1开始endcomplex_table = {x=10, y=20}complex_table.z = my_table; --用table作为valueprint(complex_table.z[2])complex_data = {color="blue", thickness=2.3, points_count=4, {x=10,y=3}, {x=30,y=8}, {x=20,y=13}, {x=50,y=6}}for key, var in pairs(complex_data) do print("complex_data pairs <" .. key .. ", " .. tostring(var) .. ">")endfor var=1, #complex_data do print("complex_data[".. var .. "]=" .. tostring(complex_data[var].x)) --索引从1开始(attempt to concatenate field '?' (a table value))endcomplex_data2 = { ["*"] = "mul", ["/"] = "div", ["+"] = "add", ["-"] = "sub"}-------------------------------------------------------赋值x = 10; y = 100x, y = y, xprint(x,y)complex_data2["+"], complex_data2["-"] = complex_data2["-"], complex_data2["+"]print(complex_data2["+"], complex_data2["-"])--作用域global_var = 10do local global_var = 122 --local global_var = 10000 --local print("global_var is " .. global_var) --问题,如何访问全局变量?endlocal global_var = global_var; --创建一个local变量,并且用global变量初始化print("global_var is " .. global_var)
0 0
- lua 基础2
- Lua基础(2)
- lua基础语法2
- lua基础语法2
- Lua基础知识点2
- 二、lua语言基础2
- Lua基础 初识Lua
- LUA基础
- Lua 基础
- Lua 基础
- lua基础
- lua基础
- lua基础
- lua基础
- lua基础
- Lua基础
- lua基础
- Lua基础
- 个人电台和手机组合
- 不同部位的jQuery文档
- Xubuntu上的Linux
- Web开发和Web设计的重要性
- UPnP协议编程实践(一)
- Lua基础(2)
- WordPress的提示未使用的插件
- 一致性hash
- b
- 从ORA-27300,ORA-27301到ORA-00064
- WAP的虚拟主机服务的解释
- WAP网站的发展举措,以轻按手机用户
- 我是如何自学编程的——“3遍读书法”
- WAP的发展