码迷,mamicode.com
首页 > 其他好文 > 详细

第二章 Scorpio-CSharp基础语法介绍 语法篇

时间:2016-02-02 18:47:40      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

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 变量

第二章 Scorpio-CSharp基础语法介绍 语法篇

标签:

原文地址:http://www.cnblogs.com/qingfeng346/p/5178150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!