新手上路
- 帖子
- 11
- 積分
- 0
- 金錢
- 0 金幣
- 級數
- 19 Lv
- 團隊
|
1#
大 中
小 發表於 2012-2-23 19:14 只看該作者
[Open]
[Close]
[原創]JASS原理
基礎JASS函數原理構築
function abc takes nothing returns nothing
endfunction
以第一句JASS開始講解起
- function是定義一句函數(function)的最先基本語法,他是開創函數最開先的字語
- abc是函數名稱
- takes是指可引用什麼參數,現在說 takes nothing 則指什麼也不引用
- returns是指回傳,可以傳出任何一樣東西,若如現在returns nothing,所指的是什麼都不回傳
- endfunction是結束函數,即指這個函數已完成了
若要用中文去解釋這句JASS的意思,就是"函數abc,能夠引入什麼都沒有的參數,能回傳什麼都沒有的東西,到結束時動作也是什麼都沒有"
這樣的中文好難理解吧,沒關係我用同一樣的方式再講另一條JASS
function abc takes integer i returns integer
return i
endfunction
理解這句JASS
- function是定義一句函數(function)的最先基本語法,他是開創函數最開先的字語
- abc是函數名稱
- takes integer i 是指可引用什麼參數,現在說 takes integer i 則指引用一個整數作為參數,那個被引用的參數定義這integer的名做"i"
- returns integer 是指回傳,可以傳出任何一樣東西,若如現在returns integer,所指的是回傳一個整數的東西return i 即指上一句"returns integer"裡所需回傳的東西是什麼,現在寫著i,即指可以回傳i的值(沒有寫著returns是不能使用return 回傳東西的)
- endfunction是結束函數,即指這個函數已完成了
可以知到的是,integer是一個整數,是一種變數類型,用中文解釋這句JASS是說"函數abc能引用integer作為參數,其參數自訂名稱為i,能回傳一個integer作為數值使用,結束前的動作就是把 i 的值傳至函數abc的returns integer中的integer之值"
假如我要使用這條函數abc,我一定要滿足這函數所需要引用的東西,例如
call abc(1) 有效的寫法,因為abc 所takes的是integer
call abc(1.00) 錯誤的寫法,因為1.00是實數而非整數
而函數的回傳類型只要跟函數的引用參數類型一樣,就可以如下方使用
call abc(abc(1)) 有效的寫法,因為abc能夠回傳出integer
假如我有一個變數叫Int,變數類型是integer
當我這樣寫的話
set Int = abc(abc(6))
Int的值,答案會是什麼?(請反白下行)
6
[ 本帖最後由 komica 於 2012-2-23 19:18 編輯 ]
|