在深入Haxe標準庫前,理解操作符是必須的。很多人都有HTML或者Flash開發背景,所以可能有一個完整的理解關于這些操作符。因此,這里有一些總結,如果已經非常熟悉像C++,Java,JavaScript或者ActionScript的操作符使用,可以快速閱讀跳過。
|操作符|關聯方向|描述|
| -- | -- | -- |
|()|左到右|分組操作符|
|!|右到左|否定|
|++|左到右|遞增|
|--|左到右|遞減|
|*|左到右|乘法|
|/|左到右|除法|
|%|左到右|模運算|
|+|左到右|加法|
|-|左到右|減法|
|<<|右到左|左位移|
|>>|右到左|右位移|
|<|左到右|小于|
|<=|左到右|小于等于|
|>|左到右|大于|
|>=|左到右|大于等于|
|==|左到右|相等|
|!=|左到右|不等于|
|&|左到右|位與|
|\| |左到右|位或|
|^|左到右|位異或|
|&&|左到右|邏輯與|
|雙豎線|左到右|邏輯或|
|= *= /= %= += -= &= ^= \|= <<= >>=|右到左|賦值操作符|
這些操作符已經按照優先級排序,從上至下。
# 二元操作符
* * * * *
二元操作符得名于他們操作兩個值。包括加法,減法,除法,乘法,模運算和等號的賦值操作符等。這些都是最核心的操作符。
## 操作符優先級
常規算數運算,重要的是記住運算符優先級順序。
為了公式更容易辨別,可以使用分組操作符。一組的操作符總是會首先執行,可以使你強制按照一個計算順序執行。
~~~
var result:Float = (21 * ((2 + 5) - 4)) / 2;
~~~
## 模操作符
二元操作符中一個可能你不熟悉的是模操作符 (%)。它用于計算整除之后剩余的值。例如,如果用10除以3之后的剩余部分,可以使用:
~~~
remainder = 10 % 3;
~~~
開始看起來好像模操作符并沒有什么用處,但是在確定是否一個值整除另外一個值是非常方便。比如,假設你想重復一個任務,但是每到第5次重復時就執行一個指定的函數。最好的方法就是創建一個變量并初始化為0,然后每次重復任務之后,就遞增這個變量 1,然后使用模運算檢查它的值,就像這樣:
~~~
repeater = repeater + 1;
if (repeater % 5 == 0) myFunction();
~~~
如果模運算之后等于0,那么就知道該執行這個函數了,不是嗎?
## 遞增和遞減
代碼中經常使用變量作為一個計數形式。當進行計數時,通常從一個數開始然后增加或者減少它的值,那么如果你有一個變量叫做 count,希望向上遞增,可以這樣:
~~~
count = count + 1;
~~~
現在,它可以使用了,但是似乎 有點麻煩。可以簡單的使用遞增(++)操作符,每次增加 1 ,或者遞減(--)操作符,每次減少 1 。使用這個功能,可以把相應操作符放在操作數的前面后者后面:
~~~
count++;
++count;
~~~
# 邏輯比較運算符
* * * * *
邏輯比較運算符用來判別表達式和值是否相等。就像二元操作符,邏輯比較運算符操作兩個值或者表達式;所有的邏輯比較運算符返回布爾值。如果比較表達式為真返回true,否則返回false 。
比較運算符最常用的格式是用于比較兩個表達式是否相等(==和 !=)。
還可以用于比較表達式的值小于大于,小于等于大于等于另一個表達式的值。
# 邏輯和 和 邏輯或
* * * * *
如果需要比較多于1個的邏輯比較,可以使用 && 或者 || 進行連接,即邏輯AND和邏輯OR 。邏輯AND在每一個表達式都返回 true 的時候 返回 true ,而邏輯OR 則在其中一個返回 true 的時候就返回true。
邏輯比較運算符之間可以使用分組操作符分組計算。
# 賦值操作符
* * * * *
在Haxe中, = 并不是唯一的賦值操作符。還包括 += ,-+,*=,/=等等,前面的表中列出了相應操作符。
# 位運算
* * * * *
(位運算不太熟悉,暫時不翻譯了)
- 本書目錄
- 第一章:Haxe介紹
- 互聯網開發的一個問題
- Haxe是什么,為什么產生
- Haxe編譯工具
- Haxe語言
- Haxe如何工作
- 那么Neko是什么
- Haxe和Neko的必須條件
- 本章摘要
- 第二章:安裝、使用Haxe和Neko
- 安裝Haxe
- 使用Haxe安裝程序
- 在Windows上手動安裝Haxe
- Linux上手動安裝Haxe
- 安裝Neko
- Windows上手動安裝Neko
- 在Linux上安裝Neko
- Hello world! 一式三份
- 編譯你的第一個Haxe應用
- 你的程序如何編譯
- HXML編譯文件
- 編譯到Neko
- 編譯為JavaScript
- 程序結構
- 編譯工具開關
- 本章摘要
- 第三章:基礎知識學習
- Haxe層級結構
- 標準數據類型
- 變量
- 類型推斷
- 常數變量
- 簡單的值類型
- 浮點類型
- 整型
- 選擇數值類型
- 布爾類型
- 字符串類型
- 抽象類型
- Void 和 Null
- 動態類型
- unknown類型
- 使用untyped繞過靜態類型
- 注釋代碼
- 轉換數據類型
- Haxe數組
- Array
- List
- Map
- Haxe中使用日期時間
- 創建一個時間對象
- Date組件
- DateTools類
- 操作數據
- 操作符
- Math類
- 使用String函數
- 本章摘要
- 第四章:信息流控制
- 數據存放之外
- 條件語句
- if語句
- switch語句
- 從條件語句返回值
- 循環
- while循環
- for循環
- 循環集合
- Break和Continue
- 函數
- 類的函數
- 局部函數
- Lambda類
- 本章摘要
- 第五章:深入面向對象編程
- 類和對象
- 實例字段
- 靜態字段
- 理解繼承
- Super
- 函數重載
- 構造器重載
- toString()
- 抽象類和抽象方法
- 靜態字段,實例變量和繼承
- 繼承規則
- 使用接口
- 高級類和對象特性
- 類的實現
- 類型參數
- 匿名對象
- 實現動態
- Typedef
- 擴展
- 枚舉
- 構造器參數
- 本章摘要
- 第六章:組織你的代碼
- 編寫可重用代碼
- 使用包
- 聲明一個包
- 隱式導入
- 顯式導入
- 枚舉和包
- 類型查找順序
- 導入一個完整的包
- 導入庫
- Haxe標準庫
- Haxelib庫
- 其他項目中的庫
- 外部庫
- 使用資源
- 文檔化代碼
- 離線文檔
- 在線文檔
- 單元測試
- haxe.unit包
- 編寫測試
- 本章摘要
- 第七章:錯誤調試
- trace函數
- trace輸出
- haxe的trace和ActionScript的trace
- 異常
- 異常處理
- CallStack和ExceptionStack
- 異常管理類
- 創建完全的異常處理類
- 異常類代碼
- 本章摘要
- 第八章:跨平臺工具
- XML
- XML剖析
- Haxe XML API
- 正則表達式
- EReg類
- 模式
- 定時器
- 延遲動作
- 隊列動作
- MD5
- 本章摘要
- 第九章:使用Haxe構建網站
- Web開發介紹
- Web 服務器
- 使用Web服務器發布內容
- HTML速成課程
- Haxe和HTML的區別
- NekoTools Web Server
- Apache安裝mod_neko
- Windows安裝Apache和mod_neko
- Linux安裝Apache和Mod_Neko
- 第一個Haxe網站
- 使用Neko作為網頁Controller
- neko.Web類
- Neko作為前端控制器
- 本章摘要
- 第十章:使用模板進行分離式設計
- 什么是模板
- Template類
- Template語法
- 使用資產
- 何時在模板中使用代碼
- 服務器端模板的Templo
- 安裝Templo
- 使用Templo
- haxe.Template和mtwin.Templo表達式上的區別
- Attr表達式
- Raw表達式
- 邏輯表達式
- 循環表達式
- set, fill, 和 use表達式
- Templo中使用宏
- 手動編譯模版
- 第十一章:執行服務端技巧
- 第十二章:使用Flash構建交互內容
- 第十三章:使用IDE
- 第十四章:通過JavaScript制作更多交互內容
- 第十五章:通過Haxe遠程通信連接所學
- 第十六章:Haxe高級話題
- 第十七章:Neko開發桌面應用
- 第十八章:用SWHX開發桌面Flash
- 第十九章:多媒體和Neko
- 第二十章:使用C/C++擴展Haxe
- 附加部分