Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KOTLIN:如何为函数中的泛型类型参数指定默认值?_Kotlin_Generics_Types - Fatal编程技术网

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())) {
    // ...
}