相关疑难解决方法(0)

[<Literal>]与F#中的其他常量有何不同?

我对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#

27
推荐指数
3
解决办法
4489
查看次数

标签 统计

f# ×1