多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
在深入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中, = 并不是唯一的赋值操作符。还包括 += ,-+,*=,/=等等,前面的表中列出了相应操作符。 # 位运算 * * * * * (位运算不太熟悉,暂时不翻译了)