我对Literal关键字有点困惑,为什么在F#中有必要.
阅读文档,听起来我[<Literal>]用它来定义一个常量,但是我有点困惑这个常量如何与F#中的所有其他常量不同.
可以使用Literal属性标记要作为常量的值.此属性具有将值编译为常量的效果.
当我想到一个常数时,我会想到一些不可改变的东西......
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?
Run Code Online (Sandbox Code Playgroud)
是因为"普通"F#值被懒惰地评估而且[<Literal>]不会被懒惰地评估.?他们的意思是'编译为常数'..?或者还有别的东西吗?
f# ×1