2026a
# 运算符和基本运算
算术、关系和逻辑运算符、特殊字符、模除法与舍入、幂、对数和平方根
Syslab 使用许多常见运算符和特殊字符,您可以使用它们对任何类型的数组执行简单的运算。
# 运算符
基础运算符号
# 算术运算符
以下算术运算符支持所有的原始数值类型:
| 表达式 | 名称 | 描述 |
|---|---|---|
+x | 一元加法运算符 | 全等操作 |
-x | 一元减法运算符 | 将值变为其相反数 |
x + y | 二元加法运算符 | 执行加法 |
x - y | 二元减法运算符 | 执行减法 |
x * y | 乘法运算符 | 执行乘法 |
x / y | 除法运算符 | 执行除法 |
x ÷ y | 整除 | 取 x / y 的整数部分 |
x \ y | 反向除法 | 等价于 y / x |
x ^ y | 幂操作符 | x 的 y 次幂 |
x % y | 取余 | 等价于 rem(x,y) |
# 布尔运算符
Bool 类型支持以下布尔运算符:
| 表达式 | 名称 |
|---|---|
!x | 否定 |
x && y | 短路与 |
x || y | 短路或 |
# 位运算符
所有原始整数类型都支持以下位运算符:
| 表达式 | 名称 |
|---|---|
~x | 按位取反 |
x & y | 按位与 |
x Ι y | 按位或 |
x ⊻ y | 按位异或(逻辑异或) |
x ⊼ y | 按位与(非与) |
x ⊽ y | 按位或(非或) |
x >>> y | 逻辑右移 |
x >> y | 算术右移 |
x << y | 逻辑/算术左移 |
# 复合赋值运算符
| 符号 | 角色 | 更多信息 |
|---|---|---|
| &= | 与赋值 | &= |
| += | 加法赋值 | += |
| -= | 减法赋值 | -= |
| *= | 乘法赋值 | *= |
| ÷= | 整除赋值 | ÷= |
| <<= | 算术左移赋值 | <<= |
| >>= | 算术右移赋值 | >>= |
| \= | 左除赋值 | \= |
| >>>= | 逻辑右移赋值 | >>>= |
| |= | 或赋值 | |= |
| ^= | 幂赋值 | ^= |
| %= | 取余赋值 | %= |
| /= | 右除赋值 | /= |
| :: | 用两个笛卡尔数构建笛卡尔坐标 | :: |
# 数值比较
| 函数名 | 简介 |
|---|---|
== | 相等 |
!=, ≠ | 不等 |
< | 小于 |
<=, ≤ | 小于等于 |
> | 大于 |
>=, ≥ | 大于等于 |
# 运算符的优先级与结合性
从高到低,Julia 运算符的优先级与结合性为:
| 分类 | 运算符 | 结合性 |
|---|---|---|
| 语法 | . followed by :: | 左结合 |
| 幂运算 | ^ | 右结合 |
| 一元运算符 | + - √ | 右结合 |
| 移位运算 | << >> >>> | 左结合 |
| 除法 | // | 左结合 |
| 乘法 | * / % & \ ÷ | 左结合 |
| 加法 | + - Ι ⊻ | 左结合 |
| 语法 | : .. | 左结合 |
| 语法 | |> | 左结合 |
| 语法 | <| | 右结合 |
| 比较 | > < >= <= == === != !== <: | 无结合性 |
| 流程控制 | && followed by || followed by ? | 右结合 |
| Pair 操作 | => followed by ? | 右结合 |
| 赋值 | = += -= *= /= //= \= ^= ÷= %= Ι = &= ⊻= <<= >>= >>>= | 右结合 |
# 算术运算
加、减、乘、除、幂、四舍五入
基本算术
| 加法 | 简介 |
|---|---|
| + | 加法运算符 |
| sum | 数组元素求和 |
| sum! | 按指定维度求和 |
| cumsum | 求累积和 |
| ty_cumsum | 求累积和 |
| cumsum! | 求累积和并赋值 |
| 减法 | 简介 |
|---|---|
| - | 减法运算符 |
| diff | 差分 |
| 乘法 | 简介 |
|---|---|
| * | 乘法运算符 |
| .* | 数组乘法 |
| prod | 数组元素的乘积 |
| prod! | 按指定维度求积 |
| cumprod | 累计乘积 |
| cumprod! | 按维度累计乘积 |
| 除法 | 简介 |
|---|---|
| \ | 求解关于 x 的线性方程组 Ax = B |
| / | 求解关于 x 的线性方程组 xA = B |
| ÷ | 整除 |
| .\ | 数组左除 |
| ./ | 数组右除 |
| rationalize | 将浮点数 x 近似为具有给定整数类型分量的有理数。 结果将与 x 相差不超过 tol |
| numerator | 分子 |
| denominator | 分母 |
| // | 整数相除,创建有理数 |
| 幂 | 简介 |
|---|---|
| ^ | 矩阵幂 |
| power | 按元素求幂 |
| 转置 | 简介 |
|---|---|
| transpose | 转置向量或矩阵 |
| ' | 复共轭转置 |
| conj | 复共轭 |
| conj! | 原地复共轭 |
| 数组符号 | 简介 |
|---|---|
| - | 一元减法 |
| + | 一元加法 |
| 其他 | 简介 |
|---|---|
| fma | 更为精确地计算x*y + z |
| muladd | 计算x * y + z |
模除法与舍入
二元函数
| 函数名 | 简介 |
|---|---|
| bsxfun | 对两个数组应用按元素运算 |
# 关系运算
值的比较
# 逻辑运算
真或假(布尔)条件
逻辑运算
# 按位运算
设置、偏移或比较特定位域
按位运算
# 集合运算
并集、交集、集合关系
集合运算
| 函数名 | 简介 |
|---|---|
| append! | 为集合添加元素 |
| insert! | 为集合添加元素 |
| deleteat! | 删除向量中的值 |
| empty! | 删除所有元素值 |
| foreach | 对每个元素调用函数 |
| map | 对每个元素调用函数 |
| intersect | 构造集合的交集 |
| intersect! | 构造集合的交集 |
| ismember | 判断数组元素是否为集数组成员 |
| setdiff | 构造集合的差集 |
| setdiff! | 构造集合的差集 |
| setxor | 设置两个数组的异或 |
| union | 构造集合的并集 |
| union! | 构造集合的并集 |
| unique | 数组中的唯一值 |
| unique! | 数组中的唯一值 |
| ty_unique | 数组中的唯一值(保留 unique 的旧版行为) |
| ismembertol | 容差范围内的集合成员 |
| uniquetol | 容差内的唯一值 |
| innerjoin | 两个表或时间表之间的内联 |
| outerjoin | 两个表或时间表之间的外联 |
| leftjoin | 将两表根据第一个表进行连接 |
| rightjoin | 将两表根据第二个表进行连接 |
| antijoin | 反连接 |
| crossjoin | 交叉连接 |
| semijoin | 半连接 |
| ∉ | 判断元素是否不在集合中 |
| all | 是否全部为真值 |
| all! | 是否全部为真值 |
| any | 是否存在真值 |
| any! | 是否存在真值 |
| prepend! | 在向量前端添加元素 |
| replace! | 替换集合中的元素 |
| resize! | 改变向量长度 |
| ty_setdiff | 设置两个数组的差集 |
| ty_intersect | 设置两个数组的交集 |
| splice! | 删除向量中的值 |
| symdiff | 构造集合的对称差 |
| symdiff! | 构造集合的对称差 |
| Base.front | 返回元组除最后一个元素外的元素 |
| Base.tail | 返回元组除第一个元素外的元素 |