Skip to content

运算符 ​

运算符 = 符号 + 类型 ​

cpro 是强类型语言,二元运算符可以写明运算类型;不写时默认按 z64(i64)运算。没有隐式类型提升。

运算符符号在三种写法里都一样,方括号里的类型名按写法换成拼音或英文。

cpro
bl x = a +[z64] b
bl y = a +[z32] b
bl z = s1 +[zifuchuan] s2   // 字符串拼接
bl w = a + b                // 等价 a +[z64] b
bl e = x ==[f64] y
cpro
变量 x = a +[i64] b
变量 y = a +[i32] b
变量 z = s1 +[string] s2    // 字符串拼接
变量 w = a + b              // 等价 a +[i64] b
变量 e = x ==[f64] y
cpro
var x = a +[i64] b
var y = a +[i32] b
var z = s1 +[string] s2     // 字符串拼接
var w = a + b               // 等价 a +[i64] b
var e = x ==[f64] y

类型不匹配直接报错:

cpro
bl a leixing z32 = 5
bl b leixing z32 = 3
bl c = a +[z64] b       // ✗ 报错:a、b 是 z32
bl d = a +[z32] b       // ✓
cpro
变量 a 类型 i32 = 5
变量 b 类型 i32 = 3
变量 c = a +[i64] b     // ✗ 报错:a、b 是 i32
变量 d = a +[i32] b     // ✓
cpro
var a type i32 = 5
var b type i32 = 3
var c = a +[i64] b      // ✗ 报错:a、b 是 i32
var d = a +[i32] b      // ✓

规则 ​

  • 一元运算符(-、!)不需要写类型
  • 二元运算符前后写空格
  • 不支持 += -= *= /=,也不支持 ++ --,请写 i = i +[z64] 1
  • 字符串只支持 +[zifuchuan]、==[zifuchuan]、!=[zifuchuan](英文写 string)
  • optional 不能直接参与运算,要先解包,见 optional 空值

暂不支持 ​

位运算与移位(& | ^ ~ << >>)当前版本尚未开放。

cpro 目前处于测试阶段