我从几天开始学习F#,所以这是一个新手问题:
我已经学会了这种方式声明一种新类型:
type GameEntity =
{
Position : Vector3<m>
Velocity : Vector3<m/s>
Acceleration : Vector3<m/s^2>
}
Run Code Online (Sandbox Code Playgroud)
(Vector3和Meausure在其他地方宣布..这很好用).现在我想声明另一种在其中存储GameEntity列表的类型.我试过这样的事情:
type GameWorld =
{
name : string;
entities : GameEntity = [] //error
}
Run Code Online (Sandbox Code Playgroud)
有人能告诉我正确的语法来声明以前定义的类型(GameEntity)的列表(实体)吗?
Vit*_*liy 16
您可以使用:
entities : GameEntity list
Run Code Online (Sandbox Code Playgroud)
要么
entities : List<GameEntity>
Run Code Online (Sandbox Code Playgroud)
要向Vitaliy的答案添加更多细节,您尝试声明的是F#中的记录:
type GameWorld =
{
name : string;
entities : GameEntity list
}
Run Code Online (Sandbox Code Playgroud)
使用记录,您可以使用模式匹配,这在F#中非常强大.如果您需要与使用C#或VB.NET编写的其他.NET组件进行互操作,那么类可能是一个不错的选择.类也允许在声明中使用绑定,而对于记录则不然:
type GameWorld(name: string, entities: GameEntity list) =
let mutable state = 1 // class allows let bindings
member x.Name = name;
member x.Entities = entities
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4959 次 |
| 最近记录: |