最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【系列】潛水黨的簡單lua教程三

2023-06-14 02:38 作者:未晞_a  | 我要投稿

上一篇文章聊到過table和函數(shù)的基本寫法。

這次便快速的講一遍lua里的一些運算符,了解運算符很重要,因為之后地圖內(nèi)需要實現(xiàn)效果時,會依靠大量的運算符來實現(xiàn)算法公式。


加法公式:

num?= 1+1

?-- 其中 + 就是加法運算符,num的結(jié)果等于2


減法公式:

num = 1 - 1

-- 其中 - 就是減法運算符,num的結(jié)果等于0


乘法公式:

num = 1 * 1

-- 其中 * 就是乘法運算符,num結(jié)果等于1


除法公式:

num = 1 / 1

-- 其中 / 就是除法運算符,num結(jié)果等于1


除了以上四種基本的加減乘除運算符以外,lua中還存在四種運算符。


取余:

num = 1 % 1?--?num結(jié)果等于0


既然1 % 1 = 0 ,那么取余到底是什么意思呢?

取余就是模運算,也是blizzard.j里面的< ModuloReal > or <?ModuloInteger >函數(shù)。

bj里面的<?ModuloInteger?>函數(shù)寫法是,被除數(shù)為a,除數(shù)為b

x =?a - (a / b) * b

如果?x < 0 那么x = x + b

返回 x(取余)


但是在< ModuloReal >函數(shù)里多了一個步驟。

它修改了 x =?a - (a / b) * b?

將其修改為?x =?a -?I2R(R2I(a / b)) * b


< R2I >函數(shù)是什么意思呢?轉(zhuǎn)實數(shù)為整數(shù),并且舍棄小數(shù)點后的數(shù),不會進行四舍五入。

< I2R?>函數(shù)是什么意思呢?轉(zhuǎn)整數(shù)為實數(shù)。

這里并不是多此一舉,之前說了,如果被除數(shù)無法被整除,那么整除后剩下的數(shù)便是取余數(shù)。

只有轉(zhuǎn)實數(shù)為整數(shù),才能確保獲取的值絕對為整數(shù),因此獲得的取余數(shù)才是準確的。


可能有的朋友看不懂上面到底是什么意思,這里再做一個最簡單不過的例子:


num = 13 % 5 -- num結(jié)果等于3


這個時候你會發(fā)現(xiàn),num不再是零,但它為什么等于3呢?


這里寫兩個簡單的公式:

13 / 5 = 2.6 -- 結(jié)果:13無法被5整除

10 / 5 = 2 -- 結(jié)果:10可以被5整除


那么10和13有什么區(qū)別呢?區(qū)別就在于多出來的3無法被5整除。

所以了,無法被整除的數(shù),就是取余的值。

實數(shù)取余也是如此,取余的規(guī)則并不會因為你用的數(shù)不同而產(chǎn)生變化。


乘冪:

num = 1 ^ 1 -- 結(jié)果num等于1


乘冪里面 1 ^ 1 結(jié)果依然是1,那么乘冪的意思是什么呢?

如果把乘冪叫做乘方、次方,是不是就熟悉多了呢?

以下是關(guān)于次方的一些規(guī)則:

1的次方等于1

1的任何次方依然是等于1

1的零次方等于1

任何數(shù)的零次方都等于1


乘冪的定義:設(shè)a為任意數(shù),n為正整數(shù),a的n次方表示為a?,表示n個a連乘所得之結(jié)果。

例:

x = 2?^ 10?

x = 2?* 2?* 2 *?2?* 2?* 2?* 2 *?2 *?2 *?2

x = 4?* 4?*?4?* 4 * 4

x = 1024


負號:

num = -1 -- 結(jié)果num等于-1

任何數(shù)加上負號,都會是返回負數(shù)。


整除:

num = 13 // 5 -- 結(jié)果num等于2

整除的概念已經(jīng)在取余中提到,這里就不多做贅述。

不過這里的整除運算符需要提到的一點是,// 在大多數(shù)的程序語言里面,都是作為注釋符號出現(xiàn)的,而lua里面的注釋符號是--


關(guān)系運算符:

== :等于,檢測兩個值是否相等,相等返回 true,否則返回 false

例:1 == 2?返回否(false)


~= :不等于,檢測兩個值是否相等,不相等返回 true,否則返回 false

例:1?~= 2 返回真(true)

這里需要說明的是,在其他程序語言里,不等于大多數(shù)為!=

而lua里面不等于是~=


> :大于,如果左邊的值大于右邊的值,返回 true,否則返回 false

例:1 > 2 返回否(false)?


< :小于,如果左邊的值大于右邊的值,返回 true,否則返回 false

例:1 <?2 返回真(true)


>= :大于,如果左邊的值大于右邊的值,返回 true,否則返回 false

例:1 >= 2 返回否(false)?


<= :小于,如果左邊的值大于右邊的值,返回 true,否則返回 false

例:1 <=?2 返回真(true)


邏輯運算符:

and :左右條件均成立時,返回真(true),否則返回否(false)

or :左右任意一個條件成立時,返回真(true),否則返回否(false)


not :相反條件成立時,返回真(true),否則返回否(false)

例:not(true)== false, not(false) == true


其他運算符:

.. :連接兩個字符串

例:‘王大錘’..‘家里著火’, 輸出結(jié)果為王大錘家里著火


# :返回字符串或table的長度

例:#‘a(chǎn)bc’,輸出結(jié)果為3

【系列】潛水黨的簡單lua教程三的評論 (共 條)

分享到微博請遵守國家法律
方城县| 定兴县| 乐安县| 海原县| 大冶市| 平武县| 台前县| 新泰市| 昭苏县| 靖远县| 会泽县| 南平市| 崇左市| 六安市| 铁岭县| 仙居县| 夏邑县| 正阳县| 沙湾县| 育儿| 雷州市| 措美县| 恩平市| 会昌县| 汨罗市| 五莲县| 喀喇| 天津市| 陆良县| 辰溪县| 山西省| 凤山县| 曲水县| 凤台县| 金川县| 南澳县| 敖汉旗| 贞丰县| 山阴县| 荥阳市| 黔南|