簡體   English   中英

F# 類型函數和一個 [<GeneralizableValue> ] 屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM