在继续讨论复杂的示例之前,我试图先弄清楚 F# 的基础知识。我正在学习的材料介绍了区分联合和记录类型。我已经审阅了两者的材料,但我仍然不清楚为什么我们要使用其中之一而不是另一个。
我创建的大多数玩具示例似乎都可以在两者中实现。记录似乎非常接近我所认为的 C# 中的对象,但我试图避免依赖映射到 C# 作为理解 F# 的方式
So...
是否有明确的理由使用其中一种而不是另一种?
是否存在某些适用的典型案例?
是否有某些功能可用,但不是
其他?
将其视为记录是“和”,而受歧视的联合是“或”。
这是一个字符串和一个整数:
type MyRecord = { myString: string
myInt: int }
虽然这是一个字符串或整数的值,但不能同时是:
type MyUnion = | Int of int
| Str of string
这个虚构的游戏可以出现在标题屏幕、游戏中或显示最终得分,但只能是这些选项之一。
type Game =
| Title
| Ingame of Player * Score * Turn
| Endgame of Score
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)