# 操作员 [![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/API/operators.md%26commit_hash%3Dd15cbbf7b33df0f78a575cff9679d84c36ea3ab1)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/API/operators.md&commit_hash=d15cbbf7b33df0f78a575cff9679d84c36ea3ab1) ## 中缀运算符 ### `_+_`|R; O; A <: Add(R, O)|(x: A, y: R) -> O 执行加法。 ### `_-_`|R; O; S <: Sub(R, O)|(x: S, y: R) -> O 执行减法。 ### `*`|R; O; M <: Mul R, O|(x: M, y: R) -> O 执行乘法。 ### `/`|R; O; D <: Div(R, O)|(x: D, y: R) -> O 进行除法。 ## 中缀字母运算符 ### `and`(x: Bool, y: Bool) -> Bool 执行 and 操作。 ### `or`(x: Bool, y: Bool) -> Bool 执行 and 操作。 ## 前缀运算符 ### `+_`|T <: Num|(x: T) -> T 默认与 id 相同。 ### `-_`|T <: Num|(x: T) -> T.Neg 例如 Nat.`-`: Nat -> Neg 和返回值不同。 ### `!`|T <: Immut|(x: T) -> `T!` 从不可变对象创建可变对象。 该运算符本身不是程序性的,可以在函数内部使用。 ### `..`|T <: Ord|(x: T) -> Range T 在 x 的末尾创建一个没有下限的 Range 对象。 x..x 仅返回 x 作为迭代器。 ### `..<`|T <: Ord|(x: T) -> Range T x.. Range T 创建一个从 x 开始没有上限的 Range 对象。 ### |T <: Ord|(x: T)`<..` -> Range T