【问题标题】:Can records have capitalized fields?记录可以有大写的字段吗?
【发布时间】:2017-03-20 04:14:49
【问题描述】:

就我的理解而言,在 purescript 中,{foo :: Foo} 脱糖到 Record ("foo" :: Foo)。我可以做类似Record ("F" :: Foo) 的东西吗?在记录访问语法中看起来如何? thing.F 在语法上是否有效?

【问题讨论】:

    标签: syntax record capitalization purescript


    【解决方案1】:

    引用字段正是这样做的方式,无论是在类型中:

    type MyRecord = { "Usually impossible field name" :: Boolean }
    

    在访问器/模式中:

    make :: Boolean -> MyRecord
    make = { "Usually impossible field name": _ }
    
    get :: MyRecord -> Boolean
    get = _."Usually impossible field name"
    
    update :: MyRecord -> Boolean -> MyRecord
    update = _ { "Usually impossible field name" = _ }
    

    以这种方式引用字段允许您使用大写字母、符号、数字等任意命名记录字段。

    这有点类似于 JavaScript 中的obj["property"],但您只能使用字符串字面量作为属性名称,而不是任意值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多