我一直在阅读一篇关于如何使用id
管理数据类型或模型的好文章,有时我们需要与id
相同的模型以及没有id
的相同模型以及以下内容
article描述了如何对类型进行建模以处理此问题。
下面的例子是用Scala编写的,我希望它的Haskell表示能够更好地理解
case class WithId[A](id: Id, model: A)
// receive data for a new user from the client
val user: User = Json.parse[User](json)
// receive data from the database
val user: WithId[User] = UserService.findByIdOrFail(userId)
对我来说重要的是类型补偿,假设我们有函数findByIdOrFail
和parse
......
答案 0 :(得分:3)
class AccessList(list):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._access = []
@property
def access(self):
return self._access[::-1] # return a reversed copy
def __contains__(self, item):
res = super().__contains__(item) # check if it contains the item
if res:
self._access.append(item) # if it's contained append it to access
return res