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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 a = false

  • number 类型

    var a = 0

    var a = 0.1

    上述不加后缀的number类型申请脚本会默认保存成double类型

    var a = 0L

    如果在最后加上L类型声明变量为long类型

    var a = 0xffff

    如果是16进制数字会保存成long类型

  • string 类型

    var a = "hello world ‘ hello world"

    var a = ‘hello world " hello world‘

    申请string类型是 双引号和单引号都可以使用,使用双引号时 内部的单引号不转义,使用单引号时,内部的双引号不转义

    var a = @"hello world

      hello world"

    string类型还可以使用@申请,加@的时候里面的符号都不转义,跟c#的@""用法一样,@符号双引号和单引号都可以使用

  • function 类型

    var a = function() { print("hello world") }

    跟其他脚本语言用法一样

  • array 类型

    var a = [100,200,300, "123", "456"]

    使用中括号声明array类型,相当于c#的List类型,取值时使用 a[0] ,索引从0开始,内部变量可以为任何变量

    array类型的操作库请查看源码的 LibraryArray.cs 文件

  • table 类型

    

var a = {
    1 = 200,  //申请时可以直接用 数字当Key
    a = 100,  //也可是使用变量名 当 Key
    b = function () {    //这样申请不能使用this变量,相当于静态函数
        print(this == null)
        print("b")
    },
    function c() {    //这样申请可以使用this变量,相当于内部函数
        print("this " + this.a)
        print("self " + self.a)
    }
    //等同于 d = 300
    "d" = 300,
    //等同于 e = 300 
    e = 400,
}
a.b()
a.c()
//数字只能使用 [] 访问
print(a[1])
//字母变量可以使用 . 访问, 也可以使用 [] 访问
print(a.d)
a.d = 400
print(a.d)
a["d"] = 500
print(a.d)

  使用大括号声明table类型,相当于c#的Dictionary类型

  table类型的操作库请查看源码的 ScriptTable.cs 文件

  • userdata 类型

  userdata保存c#里面所有的变量,具体介绍以后的文章会讲

以上是关于Scorpio-CSharp基础语法介绍 变量篇的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE第02篇:Java基础语法之变量数据类型

Scorpio-CSharp总链接

Python基础语法知识

python之小白入门起飞篇

JavaScript进阶篇-JS基础语法

go语言基础语法篇-变量