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. Duh?帮助f#选项类型
- 2. F#类型的选项问题
- 3. F#从列表中创建类型
- 4. 如何为基类创建可选类型注入?
- 5. 如何创建'OF'变量的类型?
- 6. F#如何处理可空类型
- 7. 可变类创建
- 8. 我可以创建自己的文字类型的.NET(F#)
- 9. 如何创建不可变类
- 10. 是F#引用类型中的选项类型?
- 11. 如何创建像Array这样的可变集合类型?
- 12. 如何用可变成员变量创建不可变类?
- 13. 创建Xamarin Android F#项目
- 14. 创建具有可变项
- 15. 如何创建泛型类型类
- 16. 如何创建类型
- 17. 如何创建泛型类
- 18. 在F#使用泛型创建EnumArray型
- 19. 类型(可变)VS(类型)可变
- 20. 迁移到symfony的3创建可变类类型名形式
- 21. 如何使用可选选项创建UITableView?
- 22. 如何从Type创建泛型类型?
- 23. 如何在类型变量中创建任何类型的字典?
- 24. 如何创建tell Jackson ObjectMapper来创建泛型类型?
- 25. 如何在Scala中创建自定义类型构造函数的类型类Monad [F [_]]的实例Cats
- 26. 如何在unix中将变量剪切为-f选项
- 27. 我可以通过System.CodeDom访问在F#Interactive中创建的类型吗?
- 28. 创建“类型”
- 29. 在C#中创建F#已识别的联合类型
- 30. F#创建一个特定类型的序列
只是想知道,但为什么你会需要一个可变选项? – Juliet 2010-03-06 16:08:15