Подтвердить что ты не робот

Как объявить список внутри объявления типа в F #

Я изучаю F # всего за несколько дней, поэтому здесь задается вопрос о новичке:

Я научился объявлять новый тип таким образом:

type GameEntity = 
    {
        Position : Vector3<m>
        Velocity : Vector3<m/s>
        Acceleration : Vector3<m/s^2>
    }

(Vector3 и Meausure объявлены где-то в другом месте. Это прекрасно работает). Теперь я хотел бы объявить другой тип, который хранит в нем список GameEntity. Я пробовал что-то вроде этого:

type GameWorld = 
    {
        name : string;
        entities : GameEntity = []   //error
    }

Может ли кто-нибудь показать мне правильный синтаксис, чтобы объявить список (сущности) предыдущего определенного типа (GameEntity)?

4b9b3361

Ответ 1

Вы можете использовать:

entities : GameEntity list

или

entities : List<GameEntity>

Ответ 2

Чтобы добавить более подробную информацию в ответ Виталия, вы пытались объявить запись в F #:

type GameWorld = 
    {
        name : string;
        entities : GameEntity list
    }

С записями вы можете использовать сопоставление с образцом, что очень эффективно в F #. Если вам нужно взаимодействовать с другими компонентами .NET, которые написаны на С# или VB.NET, класс может быть хорошим выбором. Также класс позволяет помещать привязки в свои объявления, что неверно в записях:

type GameWorld(name: string, entities: GameEntity list) = 
        let mutable state = 1 // class allows let bindings

        member x.Name = name;
        member x.Entities = entities