發新話題
打印

[原創]JASS原理

[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 編輯 ]

TOP

原來函數能夠take番自己return出來個數,真係好野

TOP

補充
take 和 return功能主要用於某些複雜卻常用的運算

TOP

易明,清晰,好教學

TOP

d人見jass就好似見鬼甘
你寫得再好都無用
反正識寫圖既早就識jass
唔識既亦唔會學jass
你不如post d logic 野出黎算la

TOP

事實上jass比較易用(撇除英文問題)

TOP

引用:
原帖由 altonydom 於 24-2-2012 18:50 發表
事實上jass比較易用(撇除英文問題)
E+冇咁多人用JASS原因係基本上UI已夠用同唔洗英文

TOP

的確系出得地圖玩既都系寫哂JASS
淨翻D自HIGH既系到用UI同GUI/_\

TOP

引用:
原帖由 komica 於 24-2-2012 19:39 發表
的確系出得地圖玩既都系寫哂JASS
淨翻D自HIGH既系到用UI同GUI/_\
咁又唔一定
用UI同GUI都可以做到好圖

TOP

TOP

引用:
原帖由 leoiii12 於 2012-2-25 21:56 發表
http://goo.gl/YvqV8
樓主已陣亡 說好的原創呢
...

TOP

比你地發現左添
甘我寫過第二D~

TOP

今次小懲下次大懲

TOP

建議封一封帖,廢事比作者見到。

TOP

發新話題