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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆满庭

谢谢您的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值