【问题标题】:Is there anything similar to JavaScript's spread operator for OCaml's records?对于 OCaml 的记录,是否有类似于 JavaScript 的扩展运算符的东西?
【发布时间】:2022-12-10 01:03:14
【问题描述】:

我想知道 OCaml 是否可以执行类似于以下代码的操作(在 TypeScript 中):

interface User {
  name: string
  email: string
}

function titi(user: User) {
  console.log(user)
}

let u1 = {name: "v2"}
let u2 = {...u1, email: "v2@x.y.z"}

titi(u2)

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    目前还不完全清楚你在要求什么。但是 OCaml 中最接近的构造可能是记录构造函数中的 with

    type user = { name : string; email : string }
    
    let user_a = { name = "ua"; email = "e" }
    let user_b = { user_a with name = "ub" }
    

    (当然,在 OCaml 中你必须构建一个完整的记录值,你不能只有其中一个字段。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2011-12-04
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多