Gox语言中的运算符和操作符-GX13

Gox语言中的运算符和操作符还是比较简单的,

// Assignment
a = nil
println(a)
a = true
println(a)

println("-----")

// basic operators
a = 2 + 1
println(a)
a = 2 - 1
println(a)
a = 2 * 1
println(a)
a = 4 / 2
println(a)

println("-----")

// ++ and --
a = 1
a++
println(a)
a--
println(a)

println("-----")

// +=, -=, *=, /=
a = 1
a += 1
println(a)
a -= 1
println(a)
a *= 4
println(a)
a /= 2
println(a)
a = 2 - (-2)
println(a)

println("-----")

// bitwise and/or/not
a = 1 & 3
println(a)
a = 1 | 2
println(a)
a = !true
println(a)

println("-----")

// bitwise shift
a = 2 << 3
println(a)
a = 8 >> 2
println(a)

println("-----")

// mod
a = 7 % 3
println(a)

println("-----")

// bitwise complement
a = bitXor(1.1, 2)
println(a)

输出的结果是:

λ gox operators.gox  
<nil>                
true                 
-----                
3                    
1                    
2                    
2                    
-----                
2                    
1                    
-----                
2                    
1                    
4                    
2                    
4                    
-----                
1                    
3                    
false                
-----                
16                   
2                    
-----                
1                    
-----                
0                    

注意,由于Gox语言中Qlang引擎占用了“^”作为取地址符,因此按位异或的操作只能用bitXor函数来实现。

另外,结构体的成员变量用“.”操作符一般获取的是其值,如果要获得其指针,需要用“@”操作符。

* 注:由于0.988版本后,为了减少不必要的文件体积,Gox已经放弃了其他脚本引擎,仅支持Qlang引擎,因此本文中的内容已经无效,仅留作对旧版本的参考。

下面是使用Anko引擎的版本。

// Assignment
a = nil
println(a)
a = true
println(a)

println("-----")

// basic operators
a = 2 + 1
println(a)
a = 2 - 1
println(a)
a = 2 * 1
println(a)
a = 4 / 2
println(a)

println("-----")

// ++ and --
a = 1
a++
println(a)
a--
println(a)

println("-----")

// +=, -=, *=, /=
a = 1
a += 1
println(a)
a -= 1
println(a)
a *= 4
println(a)
a /= 2
println(a)
a = 2 - (-2)
println(a)

println("-----")

// bitwise and/or/not
a = 1 & 3
println(a)
a = 1 | 2
println(a)
a = !true
println(a)

println("-----")

// bitwise shift
a = 2 << 3
println(a)
a = 8 >> 2
println(a)

println("-----")

// mod
a = 7 % 3
println(a)

println("-----")

// bitwise complement
a = ^1.1
println(a)

// string manipulation
a = "a" * 4
println(a)

输出结果是:

<nil>         
true          
-----         
3             
1             
2             
2             
-----         
2             
1             
-----         
2             
1             
4             
2             
4             
-----         
1             
3             
false         
-----         
16            
2             
-----         
1             
-----         
-2            
aaaa          

最后一个运算符是bitwise complement按位取反,按照Go语言官方的解释是:

 ^x    bitwise complement    is m ^ x  with m = "all bits set to 1" for unsigned x
                                     and  m = -1 for signed x

猜你喜欢

转载自blog.csdn.net/weixin_41462458/article/details/107879479