generics - F# 类型函数和 [<GeneralizableValue>] 属性

标签 generics f# attributes type-systems

这两个 F# 类型的函数有什么区别:

let defaultInstance1<'a when 'a:(new: unit->'a)> = new 'a()

[<GeneralizableValue>]
let defaultInstance2<'a when 'a:(new: unit->'a)> = new 'a()

最佳答案

let defaultInstance1<'a when 'a:(new: unit->'a)> = new 'a()

[<GeneralizableValue>]
let defaultInstance2<'a when 'a:(new: unit->'a)> = new 'a()

let x1 = defaultInstance1 // value restriction
let x2 = defaultInstance2

关于generics - F# 类型函数和 [<GeneralizableValue>] 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963568/

相关文章:

typescript - 在 TypeScript 中使用不同泛型的列表而不丢失原始类型信息

java - 针对泛型和特定类型或该类型列表的灵活 JAXB XML 解析

f# - 如何从 F# 中的数组中获取最小值?

f# - 在 F# 模式匹配中拆分代码块以提高可读性

java - 检测 JSP 中的下拉列表变化?

python - 无法在 "object"类的实例上设置属性

c# - 在 Generic 中实现接口(interface)时,为什么它不是必须实现方法

java - 具有通用类型的自定义异常

f# - 如何使用 printf 自定义自定义类型的输出?

java - 使用 JNDI 修改 "msExchHideFromAddressLists"Active Directory 属性