《lua程序设计(第二版)》学习笔记(三) -------------- 表达式

-- 第3章 表达式

-- 表达式用于表示值,表达式可以包含 number,string,变量,一/二元操作符及函数调用。
-- 甚至是函数定义和table构造式

-- 3.1 算术操作符
print("3.1 小数点后: " .. tostring(3.1%1));
print("3.1 小数点前: " .. tostring(3.1-3.1%1));

function isTurnBack(angle)
angle = angle % 360;
return (math.abs(angle - 180) < 10);
end

-- 小试牛刀
function doRun()
for i = 0, 360 do
if isTurnBack(i) then
print(i);
end
end
end
doRun();

-- 3.2 关系运算符(跳过)
-- 3.3 逻辑操作符
-- and or not
-- and: a and b, if a == false return a else return b
-- or: a or b , if a == true reutrn a else return b
-- not: not a, if a == false return true else false
-- and or 比较好理解,咱们看看not
print(not 0); -- lua中 0 为true,所以返回false
print(not false); -- 返回true
print(not nil); -- nil == false , 所以返回true
print(not not nil) -- not nil == true, 所以返回false
-- 上面依次返回 false true true false
-- 我想你应该明白啦

-- 3.4 字符串连接 (貌似没什么)
print("abc" .. "efg");
print(0 .. 1);

-- 3.5 优先级(不知道优先级就用括号吧小伙伴)
-- ^
-- not # -
-- * / %
-- + -
-- ..
-- < > <= >= ~= ==
-- and
-- or

-- 3.6 table构造式
-- 创建和初始化table的表达式

days = {
[0] = "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
}
print(days[4]); -- Wednesday
days[2] = nil;
print(#days);
a = {x = 10, y = 20};
-- print(a.x);
-- a.x = 30;
-- print(a["x"]);
-- a["x"] = 40;
-- print(a.x); -- all work
a.x = nil; -- delete attribute x
print(a.y);
-- print(#a);
for i = 0, 100 do
a[i] = i;
end
print(#a);
a[51] = nil;
print(#a);

posted on 2014-05-04 15:55  邪恶的nil  阅读(184)  评论(0编辑  收藏  举报