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

ReScript中模运算符%使用报错,求正确用法及替代关键字

ReScript 模运算符的正确用法

在ReScript中,不能直接使用%作为模运算符——因为%是语法扩展的前缀标记(比如%raw、%bs这类内置扩展),直接写20 % 2会被解析器误认为是语法扩展的起始,从而抛出"Did you forget a , here?"的错误。

正确实现模运算的方式是使用mod关键字,示例代码如下:

Js.log(20 mod 2) // 输出 0

需要注意,mod的运算规则遵循OCaml标准,结果的符号与被除数一致:

  • 正数运算:7 mod 3 → 1
  • 负数运算:(-7) mod 3 → -1,7 mod (-3) → 1

如果需要和JavaScript原生%运算符行为一致(结果符号与除数一致),可以自行封装函数:

let jsMod = (a, b) => {
  let result = a mod b
  result * b < 0 ? result + b : result
}

Js.log(jsMod(-7, 3)) // 输出 2,和JS中 (-7) % 3 结果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:57:05