KOTLIN:如何为函数中的泛型类型参数指定默认值?
我的问题很简单(可能不是解决方案…) 我定义了一个通用指针:KOTLIN:如何为函数中的泛型类型参数指定默认值?,kotlin,generics,types,Kotlin,Generics,Types,我的问题很简单(可能不是解决方案…) 我定义了一个通用指针: data class pTp<T>( // It's a generic wrap class for scalar type T var v:T ) 如果我想在函数中使用该类型,没有问题: fun example(...., pAg: pTp<Agenda>, .....){ } 但是,下面的代码为这个参数设置了一个默认值,它不起作用 fun example(...., pAg: pTp<
data class pTp<T>( // It's a generic wrap class for scalar type T
var v:T
)
如果我想在函数中使用该类型,没有问题:
fun example(...., pAg: pTp<Agenda>, .....){
}
但是,下面的代码为这个参数设置了一个默认值,它不起作用
fun example(...., pAg: pTp<Agenda>=pTp<Agenda>(Agenda()), .....){
}
有趣的例子(…,pAg:pTp=pTp(Agenda()),…){
}
都不是
fun example(...., pAg: pTp<Agenda>=pTp>(Agenda()), .....){
}
有趣的例子(…,pAg:pTp=pTp>(议程()),…){
}
但是,这与我在调用方初始化中使用的代码相同
所以,我不知道如何进行初始化
更新:正确答案如下。只需在
=
之前使用空格。疯了 请使用下一个语法,它将起作用:
fun example(pAg: pTp<Agenda> = pTp(Agenda())) {
// ...
}
有趣的例子(pAg:pTp=pTp(Agenda()){
// ...
}
这是
pTp
。我的错误。我会纠正的,只是在“=”之前用空格,但这很奇怪!在其他情况下,我知道这是没有必要的……如果我声明了这种类型的变量,Kotlin还要求在=
和初始化之前有一个空格。我知道代码可读性更好,但这很荒谬。。。。
fun example(...., pAg: pTp<Agenda>=pTp<Agenda>(Agenda()), .....){
}
fun example(...., pAg: pTp<Agenda>=pTp>(Agenda()), .....){
}
fun example(pAg: pTp<Agenda> = pTp(Agenda())) {
// ...
}