4
A
回答
7
您需要明確說明的類型,以避免"the Value Restriction"(或見"Automatic Generalization" on msdn):
let x : Ref<int option> = ref None
x := Some 4
4
另外請注意,您在面對F#中輸入代碼interacative行由行,只有當這個問題。如果輸入的第一行不提供類型的註釋,你會得到錯誤:
> let x = ref None;;
// Tests.fsx(1,7): error FS0030: Value restriction.
但是,如果你輸入的代碼較大porition使用該x
裁判細胞(例如值賦給它)那麼F#將能夠從代碼的後面部分推斷出該類型,因此您不需要任何類型註釋。例如:
> let x = ref None
x := Some(10);;
這將正常工作,因爲F#將會從第二行推斷x
類型。這意味着如果您將代碼交互地發送到F#以進行大部分測試(並且在編譯的F#代碼中,您幾乎不會遇到此問題),則您可能不需要任何類型註釋。
相關問題
- 1. F#類型的選項問題
- 2. 選項和類型確定f#
- 3. Duh?幫助f#選項類型
- 4. 序列化F#選項類型
- 5. F#選項類型執行計算
- 6. F#從列表中創建類型
- 7. 如何爲基類創建可選類型注入?
- 8. F#如何處理可空類型
- 9. 如何創建'OF'變量的類型?
- 10. 可變類創建
- 11. F#如何創建一個提供的類型
- 12. 我可以創建自己的文字類型的.NET(F#)
- 13. 如何創建不可變類
- 14. 如何在magento中創建新的自定義選項類型?
- 15. 是F#引用類型中的選項類型?
- 16. 如何創建一個包裝可變向量的類型?
- 17. 如何創建像Array這樣的可變集合類型?
- 18. 如何用可變成員變量創建不可變類?
- 19. 創建Xamarin Android F#項目
- 20. F#XML類型提供程序和可選類型
- 21. 如何分配默認類型以創建可選的類型參數?
- 22. 如何推廣f#選項?
- 23. 創建具有可變項
- 24. 如何創建泛型類型類
- 25. 如何創建選項欄
- 26. 如何創建一個Java項目,需要在運行選項(即-p或-f)
- 27. 如何創建類型
- 28. 如何創建泛型類
- 29. 在F#使用泛型創建EnumArray型
- 30. 如何創建或可變
只是想知道,但爲什麼你會需要一個可變選項? – Juliet 2010-03-06 16:08:15