1. if
1 var a = 300 3 if (a == 100) { 5 print(100) 7 } else if (a == 200) { 9 print(200) 11 } elif (a == 300) { 13 print(300) 15 } elseif (a == 400) { 17 print(400) 19 } else { 21 print(0) 23 }
else if(有空格) 和 elif 和 elseif(无空格) 三种写法都可以使用,都当作 else if 使用
if 里面的变量 除了 false和null 其他变量全部可以判断通过 例如 if(1) if([]) if ({}) 都会判断通过
PS : string类型可以直接使用 > < >= <= 直接比较, 并且操作符号位 && ,或者操作符号为 ||
2. for 循环
1 for (var i = 0; i< 10; ++i) { 3 } 5 //上述为基础for循环,用法跟所有语言一样 7 for (var i = 0, 10, 1) { 9 }
上述为简易for循环, 注意,中间是逗号不是分号,这种就相当于 for (var i = 0; i <= 10; i += 1) 这样,此种简易for循环执行效率比 第一种 要好点, 第一值声明 i 初始值,第二个值为结尾值(包含此值),第三个值为递增值(如果不写第三个逗号默认为1)
3. foreach 循环
foreach 一般用来循环 array 和 table变量
1 var arr = [100,200,300,400] 2 foreach (var p in pairs(arr)) { 3 print(p.key + " = " + p.value) 4 } 6 foreach (var p in kpairs(arr)) { 8 print("key = " + p) 10 } 12 foreach (var p in vpairs(arr)) { 14 print("value = " + p) 16 }
table 用法跟array一样
foreach 原生支持 pairs(返回键值) kpairs(只返回键) vpairs(只返回值) 三种函数
foreach 内的函数也可以重载 例如
function test(arr) { var index = 0 return function() { if (index >= array.count(arr)) { return null } else { return arr[index++] } } } var a = [1,2,3,4] foreach (var pair in test(a)) { print(pair) }
foreach 是调用的test函数,test函数返回一个函数,然后foreach会每次调用,直到返回一个null值时foreach跳出
4. while 循环
跟其他语言用法一样 while (true) { } , 不支持 do while
5. try catch 抛出异常
function trycatch(arg,th) { try { if (arg) { throw th } print(arg + " hello world ") } catch(e) { print("error : " + th) } print("finished") } trycatch(false) trycatch(true, "ffffffffffffffff")
try catch 可以跳过一些不确定的代码 以 保证后续的代码正常执行
PS:try catch 也可以捕捉c#的异常
6. 变长参数
function test(a,...b) { print(a) print(array.count(b)) foreach (pair in pairs(b)) { print(pair.value) } } test(100,200,300,400)
上述代码中 带有 … 会被解析成 变长函数, b 会保存成 一个脚本的 array 类型,即 上面调用中 a为 100, b 为 [200,300,400]
7. 运算符
脚本支持 所有基础运算 加减乘除等
脚本还支持位运算
var a = 1024L a |= 1L print(a) a ^= 1L print(a) a >>= 1L print(a) a <<= 1L print(a) a &= 1L print(a)
PS : 位运算支持long类型,double类型不行
8. 特殊
脚本中函数可以定义内部变量 例如
function test() { print(a) } test.a = 100 test()
上述代码中 test.a = 100 把函数 test 赋值一个 a 变量,然后再 test 函数内部 就可以直接使用 a 变量