目前我有一个私有函数,它返回一个Pair<User, User>
对象,第一个用户是发送者,第二个用户是接收者。
我认为这个Pair<User, User>
不足以自我解释--或者如果你喜欢的话,也可以说是干净的--尽管它只是一个私有函数。
是否可以像这样返回一个ad-hoc对象:
private fun findUsers(instanceWrapper: ExceptionInstanceWrapper): Any {
return object {
val sender = userCrud.findOne(instanceWrapper.fromWho)
val receiver = userCrud.findOne(instanceWrapper.toWho)
}
}
并像这样使用返回值:
// ...
val users = findUsers(instanceWrapper)
users.sender // ...
users.receiver // ...
// ...
?
如果不是,Kotlin中的ad-hoc对象有什么意义呢?
3条答案
按热度按时间jmp7cifd1#
由于类型不能在语言中表示,因此使用返回类型推断:
另一种选择是设计一个数据类:
njthzxwz2#
只需将函数定义为lambda即可。
下面是我在另一个上下文中编写的简单对象:
不幸的是,你不能赋值类型名,所以它只能作为返回值而不能作为参数。也许他们会使这成为可能,这样我们就可以最终使用OOP JS风格了。
或者,它们可以实现与函数类型等价的对象类型,但这样做可能会太冗长。然后,您可以使用typedef,但这实际上只是一种类定义😅
pengsaosao3#
另一种选择是为返回类型创建一个泛型类:
用法示例: