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

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

时间: 2024-10-17 12:30:32

第二章 Scorpio-CSharp基础语法介绍 语法篇的相关文章

《The Django Book》实战--第二章--动态网页基础

这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考. 这是一个用python写的一个显示当前时间的网页. 1.开始一个项目. 在命令行中(指定要保存项目代码的盘或文件夹下)输入 python ...\django-admin.py startproject djangobook  (虽然在环境变量Path中加入了django-admin.py的地址,但是在前面还是要加上路径名,不知

第二章 Mablab语言基础

第二章 Mablab语言基础 2.1 Matlab的变量与常量 1) input:x=input(‘please enter a numb’) 2) Inf/inf:正无穷大 3) pi:圆周率 4) 默认保留变量:ans 2.2 Matlab的基本数据结构(1) 1) 修改Curent Folder:修改快捷方式的目标属性 2) 向量=数组 3) 行矩阵a=[1 2 3]或a=[1,2,3];列矩阵b=[1 2 3]'或b=[1;2;3] 4) 内置矩阵函数ones(ones(4):4维全1矩

第二章线程同步基础

Java 7 并发编程实战手册目录 代码下载(https://github.com/Wang-Jun-Chao/java-concurrency) 第二章线程同步基础 2.1简介 多个执行线程共享一个资源的情景,是最常见的并发编程情景之一.在并发应用中常常遇到这样的情景:多个线程读或者写相同的数据,或者访问相同的文件或数据库连接. 为了防止这些共享资源可能出现的错误或数据不一致,我们必须实现一些机制来防止这些错误的发生. 为了解决这些问题,引入了临界区(Critical Section)概念,临

【ALearning】第二章 Android工程相关知识介绍

本章主要初步介绍Android工程开发环境的搭建,以对Android项目整体的认识与了解.本章包括Android开发环境搭建.第一个Android项目Hello World与Android项目的文件目录结构介绍. Android开发环境搭建 Android开发环境的搭建方式有两种,分别是Eclipse/MyEclipse+ADT+Android SDK和Android Developer Tools.前者方式的开发环境搭建,参看[http://blog.sina.com.cn/s/blog_4e

Java图示(第二章 Java语言基础)

Java图示(第二章 Java语言基础) 三个基本部分:一个包声明(package语句).任意数量的引入(import语句).类和接口声明(class和interface语句) 1.包声明—package语句 1)包是类和接口的集合,即类库 2)用类库管理类,方便管理 3)Java类都在类库中 4)只有一条包声明,且为第一条 2.引入语句—import语句 1)import语句在包语句后,所有类或接口前 2)两种形式 (1)import 包名.类名: (2)import 包名*://编译器会识别

网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织.可共享的集合. 2,常见的数据库: Oracle Database 甲骨文公司 SQL Server  微软公司 DB2   IBM公司 POSTGRESQL     开源 MySQL 开源 Access 微软公司 注意:虽然数据库各种各样,但是数据库语句之间具有相同之处. 3,数据库基本知识:

第一章 Scorpio-CSharp基础语法介绍 变量篇

1. 申请变量时加上 var 证明此变量的作用域为当前作用域,不加var的一律认为是全局变量 2. 预留全局变量 _G 全局table,_G保存了所有全局变量 _VERSION 脚本引擎版本号,暂时全部为master _SCRIPT 脚本引擎对象 3. 脚本内所有数据类型分别为 null bool number string function array table userdata,下面为各类型的申请 null 类型 var a = null bool 类型 var a = true var

第二章,JAVA基础语法

一.注释: 单行注释://,JAVA编译器会忽略掉这部分信息. eg: package com.wangna; public class TestDemo { public static void main(String[] args) { // 此处为注释,编译代码时不编译 System.out.println("Hello MLDN."); }}

第二章 TCP/IP 基础知识

? TCP/IP ?transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的. ? 2.2 TCP/IP 的标准化 2.2.2 TCP/IP 标准化精髓 TCP/IP 协议始终具有很强的实用性. 相比于TCP/IP ,OSI 之所以未能达到普及,主要原因在于未能尽早的制定可行性较强的协议.未能提出应对技术快速更新的协议以及没有能及时进行后期的改良的方案. 2.2.3 TCP/IP 规范 --RFC 那些需要标准