You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua中单波浪号~的作用是什么?是否为不等于运算符~=的简写?

Lua 中单独波浪号 ~ 的含义

首先明确结论:单独的 ~ 不是不等于运算符 ~= 的简写形式,两者功能完全无关。

你示例中出现的二元用法(两个操作数)12 ~ 36 里,~ 是 Lua 5.2 及以上版本支持的按位异或运算符,运算规则为:对两个整数的每一位二进制位逐一比较,对应位数值不同时结果位为1,相同时结果位为0。

拿你的示例计算:

  • 12 转二进制为 001100
  • 36 转二进制为 100100
  • 按位异或后得到二进制 101000,对应十进制数值 40
  • 最终 num_1 的赋值结果为 40

额外补充:如果 ~ 作为一元运算符使用(只有一个操作数,比如 ~12),它的作用是按位取反,对整数的所有二进制位取反,最终结果等价于 -数值 - 1,比如 ~12 的计算结果为 -13。

不等于运算符的固定写法为 ~=,不能省略等号单独用 ~ 表示不等判断,强制这么写会触发语法错误。

内容的提问来源于stack exchange,提问作者tronjo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:45:04