Gravity语言运算符详解:从基础到高级用法
gravity Gravity Programming Language 项目地址: https://gitcode.com/gh_mirrors/gr/gravity
运算符概述
在Gravity编程语言中,运算符是用于检查、修改或组合值的特殊符号或短语。作为一门现代化的脚本语言,Gravity在保留传统C语言运算符的基础上,进行了多项改进以消除常见编码错误。本文将全面解析Gravity中的各类运算符及其特性。
算术运算符
算术运算符用于执行基本数学运算,包括:
- 加法(+)
- 减法(-)
- 乘法(*)
- 除法(/)
- 取模(%)
var sum = 5 + 3 // 结果为8
var difference = 10 - 7 // 结果为3
var product = 4 * 6 // 结果为24
var quotient = 20.0 / 5 // 结果为4.0
var remainder = 9 % 4 // 结果为1
重要特性:Gravity的除法运算符会根据操作数类型自动判断是执行整数除法还是浮点除法。当至少有一个操作数为浮点数时,结果为浮点数。
赋值运算符
Gravity的赋值运算符(=)用于初始化或更新变量值:
var x = 10
var y = x + 5 // y的值为15
安全特性:与某些语言不同,Gravity的赋值运算符不返回任何值,这有效防止了常见的将赋值运算符(=)误用作相等比较运算符(==)的错误。
比较运算符
比较运算符返回布尔值(true或false)表示比较结果:
- 相等(==)
- 不等(!=)
- 小于(<)
- 小于等于(<=)
- 大于(>)
- 大于等于(>=)
- 完全相等(===)
- 不完全相等(!==)
- 类型检查(is)
- 模式匹配(~=)
3 == 3.0 // true,值相等
3 === 3.0 // false,类型不同
"hello" is String // true
类型转换:Gravity会在运行时执行一些智能类型转换,例如数字1和字符串"1"使用==比较时为true,但使用===比较时为false。
逻辑运算符
逻辑运算符用于布尔逻辑运算:
- 逻辑非(!或not)
- 逻辑与(&&或and)
- 逻辑或(||或or)
var isTrue = true
var isFalse = false
!isTrue // false
isTrue && isFalse // false
isTrue || isFalse // true
// 使用关键字形式增强可读性
not isTrue
isTrue and isFalse
isTrue or isFalse
短路求值:Gravity的逻辑运算符支持短路求值,即当第一个操作数已经能确定结果时,不会计算第二个操作数。
位运算符
位运算符直接操作整数的二进制位:
- 左移(<<)
- 右移(>>)
- 按位与(&)
- 按位或(|)
- 按位异或(^)
- 按位取反(~)
var flags = 0b1100
var shifted = flags << 2 // 0b110000
var masked = flags & 0b1010 // 0b1000
var inverted = ~flags // 按位取反
二进制表示:Gravity支持0b前缀表示二进制数,方便位运算操作。
复合赋值运算符
复合赋值运算符结合了赋值和运算:
var num = 5
num += 3 // 等同于num = num + 3
num *= 2 // 等同于num = num * 2
完整列表包括:
- 算术复合:+=, -=, *=, /=, %=
- 位运算复合:<<=, >>=, &=, ^=, |=
运算符优先级
理解运算符优先级对于编写正确表达式至关重要。Gravity中的运算符优先级从高到低大致为:
- 括号(())
- 一元运算符(!, ~, +, -)
- 乘除取模(*, /, %)
- 加减(+, -)
- 移位(<<, >>)
- 比较(<, <=, >, >=)
- 相等(==, !=)
- 位运算(&, ^, |)
- 逻辑运算(&&, ||)
- 赋值(=, 复合赋值)
当不确定优先级时,建议使用括号明确运算顺序。
最佳实践
- 对于复杂表达式,使用括号明确运算顺序
- 比较浮点数时考虑精度问题
- 使用===进行严格比较,避免类型转换
- 利用复合运算符简化代码
- 在需要高可读性的场合使用关键字形式(and, or, not)
通过掌握这些运算符的特性和使用技巧,可以编写出更高效、更安全的Gravity代码。
gravity Gravity Programming Language 项目地址: https://gitcode.com/gh_mirrors/gr/gravity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考