Operators and Operators in Gox Language-GX13

Operators and operators in Gox language are relatively simple,

// 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)

The output is:

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

Note that because the Qlang engine in the Gox language occupies "^" as the address symbol, the bitwise XOR operation can only be implemented with the bitXor function.

In addition, the member variable of the structure generally obtains its value with the "." operator. If you want to obtain its pointer, you need to use the "@" operator.

 

* Note: Since version 0.988, in order to reduce unnecessary file size, Gox has abandoned other script engines and only supports Qlang engine, so the content in this article is no longer valid and is only reserved for reference to the old version.

 

The following is the version using Anko engine.

// 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)

The output is:

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

The last operator is bitwise complement bitwise inversion, according to the official interpretation of the Go language:

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

Guess you like

Origin blog.csdn.net/weixin_41462458/article/details/107879479
Recommended