[英]F# type functions and a [<GeneralizableValue>] attribute
這兩個 F# 類型的函數有什么區別:
let defaultInstance1<'a when 'a:(new: unit->'a)> = new 'a()
[<GeneralizableValue>]
let defaultInstance2<'a when 'a:(new: unit->'a)> = new 'a()
這是一個很好的博客:
http://blogs.msdn.com/b/mulambda/archive/2010/05/01/value-restriction-in-f.aspx (存檔在這里)。
閱讀GeneralizableValue
部分需要一些閱讀,但如果你到達那里,我想你會理解它。 :)
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.