代码之家  ›  专栏  ›  技术社区  ›  Matthias Schuster

Elm中的泛型类型词典

  •  6
  • Matthias Schuster  · 技术社区  · 6 年前

    我很好奇如何将此从F#移植到Elm:

    type World =
        { Rooms: Map<RoomId, Room> 
          Player: Player }
    

    RoomId和Room之间的关系被称为泛型字典。 请参见此处上下文: https://github.com/ShalokShalom/Elchemist/blob/master/Game.fs

    我读了一些关于类型变量的书,它们能帮助我吗? 如果是,如何?

    谢谢:D

    1 回复  |  直到 6 年前
        1
  •  7
  •   Chad Gilbert    6 年前

    Elm的语法与此类似。

    编辑 -@dogbert关于RoomId在我最初的答案中不具有可比性的说法是正确的。可以改用字符串的类型别名。

    type alias RoomId = String
    
    type alias Room =
        { id: RoomId
        , details: Details
        , items: List Item
        , exits: Exits 
        }
    
    type alias World =
        { rooms: Dict RoomId Room
        , player: Player
        }