草庐IT

constructor - 如何在 Kotlin 的构造函数 block 之外访问辅助构造函数参数

我是Kotlin的新手,正在学习可用的教程。但是现在我似乎对辅助构造函数有疑问:在主构造函数中声明的参数可以在函数中访问,但是当我尝试使用辅助构造函数中的参数执行此操作时,出现错误:未解析的引用:nbr代码:classTest(_name:String){valname:String=_nameconstructor(_name:String,_nbr:Int):this(_name){valnbr:Int=_nbr}funprintNameAndNumber(){println("Name:$name")println("Number:$nbr")}}我很清楚我做错了什么,但谁能告诉

android - 如何将 Android 任务转换为 Kotlin Deferred?

Firebase匿名登录返回task(基本上是Googlepromiseimplementation):valtask:Task=FirebaseAuth.getInstance().signInAnonymously()如何创建signInAnonymous包装器,其中:是一个suspend函数,等待task完成暂停有趣的signInAnonymous():Unit它返回一个Deferred对象,异步传递结果有趣的signInAnonymous():延迟 最佳答案 包裹kotlinx.coroutines.tasks现在包括以下实

android - 如何将 Android 任务转换为 Kotlin Deferred?

Firebase匿名登录返回task(基本上是Googlepromiseimplementation):valtask:Task=FirebaseAuth.getInstance().signInAnonymously()如何创建signInAnonymous包装器,其中:是一个suspend函数,等待task完成暂停有趣的signInAnonymous():Unit它返回一个Deferred对象,异步传递结果有趣的signInAnonymous():延迟 最佳答案 包裹kotlinx.coroutines.tasks现在包括以下实

android - 是否可以在android的新导航组件中发送字符串或整数以外的参数

新的导航组件很棒!但是我想在我的fragment之间发送“长”变量。在导航图文件中写这个是可行的:写这个不会编译:目前,我似乎被迫将它们解析为字符串格式。它工作得很好,但对我来说似乎很奇怪,对于这样一个基本架构,我不能使用诸如long或byte或short之类的原始类型。我错过了什么吗?future会开发这种功能集吗? 最佳答案 从1.0.0-alpha08版本开始,您可以使用很多不同的类型,我找到了一个列表here"integer"->IntType"integer[]"->IntArrayType"long"->LongType

android - 是否可以在android的新导航组件中发送字符串或整数以外的参数

新的导航组件很棒!但是我想在我的fragment之间发送“长”变量。在导航图文件中写这个是可行的:写这个不会编译:目前,我似乎被迫将它们解析为字符串格式。它工作得很好,但对我来说似乎很奇怪,对于这样一个基本架构,我不能使用诸如long或byte或short之类的原始类型。我错过了什么吗?future会开发这种功能集吗? 最佳答案 从1.0.0-alpha08版本开始,您可以使用很多不同的类型,我找到了一个列表here"integer"->IntType"integer[]"->IntArrayType"long"->LongType

java - Kotlin 方法重载

以下声明在Kotlin中是合法的。funfoo():String="foo_1"funfoo():T="foo_2"asT作为我们得到的字节码:publicfinalstaticfoo()Ljava/lang/String;//signature()TT;//declaration:Tfoo()publicfinalstaticfoo()Ljava/lang/Object;也可以从Kotlin调用这两种方法。当我试图从Java中调用它们时,问题就来了:ClassKt.foo()Ambiguouscall.Bothmethodsmatch...如何避免这样的问题?如何处理这样的方法?如果

java - Kotlin 方法重载

以下声明在Kotlin中是合法的。funfoo():String="foo_1"funfoo():T="foo_2"asT作为我们得到的字节码:publicfinalstaticfoo()Ljava/lang/String;//signature()TT;//declaration:Tfoo()publicfinalstaticfoo()Ljava/lang/Object;也可以从Kotlin调用这两种方法。当我试图从Java中调用它们时,问题就来了:ClassKt.foo()Ambiguouscall.Bothmethodsmatch...如何避免这样的问题?如何处理这样的方法?如果

Json 到 Kotlin 数据类

有没有一种方法和/或库可以像在ScalaJson.Spray中一样从Json自动创建KotlinData类?类似这样的:dataclassUser(id:Int,name:String)classDataClassFactory(valjson:String){fungetUser():User{//somereflectionreturnUser(10,"Kirill")}}funmain(args:Array):Unit{valjson="{id:10,name:Kirill}"valusr=DataClassFactory(json).getUser()println(usr)}

Json 到 Kotlin 数据类

有没有一种方法和/或库可以像在ScalaJson.Spray中一样从Json自动创建KotlinData类?类似这样的:dataclassUser(id:Int,name:String)classDataClassFactory(valjson:String){fungetUser():User{//somereflectionreturnUser(10,"Kirill")}}funmain(args:Array):Unit{valjson="{id:10,name:Kirill}"valusr=DataClassFactory(json).getUser()println(usr)}

functional-programming - 在 Kotlin 中取最后 n 个元素

我有一个列表,我想在其中应用一些转换,但不包括前2个元素。我怎样才能以最好的方式做到这一点?像这样的:list.reversed().take(list.size-2)...(mytransformations)或list.excludeFirstN(2)...(mytransformations) 最佳答案 您可以使用takeLast(n)喜欢:list.takeLast(3)但要小心,最后一个数字先表示,所以你可能需要使用reversed同样,因此您的代码可能是:list.takeLast(3).reversed()