【发布时间】:2014-08-25 06:16:02
【问题描述】:
我对 Literal 关键字以及为什么它在 F# 中是必需的感到有些困惑。
阅读文档,我觉得[<Literal>] 用于定义一个常量,但是我有点困惑这个常量与 F# 中的所有其他常量有何不同..
打算作为常量的值可以用 字面属性。该属性具有使值变为 编译为常量。
当我想到一个常数时,我想到的是不可变的东西......
let x = "a" + "b" //this is a immutable value, its value is constant
[<Literal>]
let y = "a" + "b" //this is also a immutable value, but why is this a special constant?
是不是因为“正常”F# 值被延迟评估而[<Literal>] 没有被延迟评估..?这就是“编译为常量”的意思吗?还是有别的原因?
【问题讨论】:
标签: f#