MoonBit 语言导览 MoonBit

新类型模式(Newtype)

新类型模式(Newtype)类似于仅包含单个构造器的枚举类型(构造器名称与新类型模式(Newtype)本身相同)。您可以通过该构造器创建新类型值,并使用._操作符提取其内部表示。

新类型模式同样支持模式匹配的使用。

type UserId Int
type UserName String

fn main {
  let user_id : UserId = UserId(1)
  let user_name : UserName = UserName("Alice")
  println(user_id._)
  println(user_name._)
  // use some pattern matching to extract the values
  let UserId(id) = user_id 
  let UserName(name) = user_name
}