jass函数和c 语言,新企划 新的编译为Jass的语言
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
沒什么別的意思就是做來玩玩而已,目前只是簡(jiǎn)單的構(gòu)思階段,做不做甚至都還不確定。以下是目前構(gòu)思的特性
1. 類Lua語(yǔ)法。因?yàn)長(zhǎng)ua比較熟悉,雖然也有部分語(yǔ)法不喜歡,但大部分都還行。
-- if
if a == 1 then
end
-- loop
for i = 1, 3 do
end
while a == 1 do
end
2. 靜態(tài)類型。因?yàn)镴ass本身就是靜態(tài)類型的。語(yǔ)法為
local x:int = 1
local y:string = "2"
local z:string = 3.0 -- 語(yǔ)法錯(cuò)誤
function foo(a:int, b:int):string
return I2S(a + b)
end
3. 類型推導(dǎo)。在類型可以推斷出來的地方,類型定義可以省略,例如下面都是合法的語(yǔ)法。
local x = 1 -- x的類型是int
local y = "2" -- y的類型是string
local z = 3.0 -- z的類型是float
local w = y -- w的類型是string
4. 數(shù)組
local a:int[]
for i = 1, 3 do
a[i] = i
end
5. 兩種定義函數(shù)的方法。
function foo(a:int, b:int):string
return I2S(a + b)
end
foo(a:int, b:int):string =>
return I2S(a + b)
end
6. 匿名函數(shù)。
-- 由于類型推導(dǎo),匿名函數(shù)定義里的類型都可以省略
TimerStart(t, 1.0, true, function()
DoNothing()
end)
TimerStart(t, 1.0, true, () =>
DoNothing()
end)
7. 類型繼承。
typedef handle unit
8. 內(nèi)置類型
int 等同于jass里的integer
float 等同于jass里的real
string 等同于jass里的string
bool 等同于jass里的boolean
void 等同于jass里的nothing
不可被繼承
function 等同于jass里的code
不可被繼承,類型需要指明參數(shù)和返回值的類型,例如
local foo:(int,int):int
-- 語(yǔ)法錯(cuò)誤
foo = (a:int):int =>
return a
end
foo = (a:int, b:int):int =>
return a + b
end
9. 模塊化
-- ModuleA文件
-- 局部變量模塊外不可見
local a = 1
-- 使用export讓模塊外可見
export b = 2
-- ModuleB文件
local A = import 'ModuleA'
local a = A.a -- 語(yǔ)法錯(cuò)誤
local b = A.b
10. 對(duì)象
-- Calc文件
local a = 1
export b = 2
export function init(c:int):void
b = a + c
end
-- Main文件
local Calc = class 'Calc'
local a = Calc(10)
11. 函數(shù)重載
function add(a:int, b:int):int
return a + b
end
function add(a:string, b:string):string
return a + b
end
local x = add(1, 2) -- 3
local y = add("1", "2") -- "12"
總結(jié)
以上是生活随笔為你收集整理的jass函数和c 语言,新企划 新的编译为Jass的语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nvme固体硬盘Intel750,SM9
- 下一篇: 如何评价 GitHub 发布的文本编辑器