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

公孙胡媚
2023-12-01

1. if

 1   var a = 300
 3   if (a == 100)  {
 5       print(100)
 7   } else if (a == 200 && true || !(a == 300)) {
 9      print(200)
11   } elif (a == 300 || true) {
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 其他变量全部可以判断通过,也就是当作true处理, 例如 if(1) if([]) if ({}) 都会判断通过

  PS : string类型可以直接使用 > < >= <= 直接比较, 并且操作符号为 && ,或者操作符号为 || , 取反操作使用!

2. for 循环

//基本for循环
for (var i = 0;i < 10; ++i) {
    print(i)
}
print("===================")
//单纯for循环 初始值,最终值(包含),step(不写默认为1)
for (var i = 0, 10) {
    print(i)
}
print("===================")
for(var i = 0, 10, 2) {
    print(i)
}
//上述为简易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(a) {
    var index = 0
    var count = array.count(a)
    //直到不返回任何值 跳出foreach循环
    return function() {
        if (index < count) {
            return a[index++]
        }
    }
}
var a = [1,2,3,4]
foreach (var p in test(a)) {
    print(p)
}

 

foreach 是调用的test函数,test函数返回一个函数,然后foreach会每次调用,直到不返回任何值时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 变量

var a = 0
if (a == 0)
  print("true")
//if 判断 如果只有一句的话 可以不加大括号,可以优化代码行数
PS : 如果是 if(true) return; 如果if语句里面只有一个return 请在return后面加上 分号; 否则会编译失败

 

转载于:https://www.cnblogs.com/qingfeng346/p/5178150.html

 类似资料: