类型播放器和数据播放器之间的区别?
Different Between type Player and data Player?
有什么区别:
A):
type Player = (String, Int)
name:: Player -> String
name (n,_) = n
number :: Player -> Int
number (_,i) = i
和B):
data Player = Player { name :: String
, number :: Int
}
我什么时候使用每一个?
type Player = (String, Int)
为类型 (String, Int)
创建一个新的 name。这不是一件非常有用的事情。玩家可能会对任何这样的对感到困惑,并且类型系统不会发现错误。不可能为 Player
编写不适用于 (String, Pair)
.
的 class 个实例
data Player = Player { name :: String
, number :: Int
}
创建一个全新的类型,Player
,带有一个名为 Player
的构造函数,它有两个命名字段。这是一件有用的事情。
我对初学者的建议:不要为 type
烦恼。它主要与某些高级语言功能结合使用,而且从来都不是很令人兴奋。
有什么区别:
A):
type Player = (String, Int)
name:: Player -> String
name (n,_) = n
number :: Player -> Int
number (_,i) = i
和B):
data Player = Player { name :: String
, number :: Int
}
我什么时候使用每一个?
type Player = (String, Int)
为类型 (String, Int)
创建一个新的 name。这不是一件非常有用的事情。玩家可能会对任何这样的对感到困惑,并且类型系统不会发现错误。不可能为 Player
编写不适用于 (String, Pair)
.
data Player = Player { name :: String
, number :: Int
}
创建一个全新的类型,Player
,带有一个名为 Player
的构造函数,它有两个命名字段。这是一件有用的事情。
我对初学者的建议:不要为 type
烦恼。它主要与某些高级语言功能结合使用,而且从来都不是很令人兴奋。