我的问题很简单(也许不是解决方法……)
我已经定义了一个通用指针:
data class pTp<T>( // It's a generic wrap class for scalar type T
var v:T
)
该通用指针对许多结构化数据的作用:
data class Agenda (
var name: String="",
var address: String=""
)
如果我想在函数中使用该类型,没问题:
fun example(...., pAg: pTp<Agenda>, .....){
}
下面的函数调用正常进行
var agen: pTp<Agenda> = pTp(Agenda())
... example(...,pAg=agen,...)
或
... example(...,pAg=pTp(Agenda()),...)
但是,下面的代码无法使用此参数的默认值...
fun example(...., pAg: pTp<Agenda>=pTp<Agenda>(Agenda()), .....){
}
都不是
fun example(...., pAg: pTp<Agenda>=pTp>(Agenda()), .....){
}
但是,它与我在调用方的初始化中使用的代码相同!
所以,我不知道如何进行初始化。
更新:正确的答案如下。只需在=
前使用空格。疯了!
答案 0 :(得分:1)
请使用下一种语法,它将起作用:
fun example(pAg: pTp<Agenda> = pTp(Agenda())) {
// ...
}