什么是在Kotlin复制地图最聪明的方法?

我想获得一个具有相同内容的Map的新实例,但Map没有内置的copy方法。 我可以做这样的事情: val newInst = someMap.map { it.toPair() }.toMap() 但它看起来相当丑陋。 有没有更聪明的方法来做到这一点?

比较字符串Kotlin

我正在学习kotlin,但是我很失望,我无法比较两个字符串。 什么是正确的比较方式。 btn_login.setOnClickListener { val login = input_email.text.trim() val pass = input_password.text.trim() if( login.equals( pass ) ){ startActivity() } if (login?.equals(other = pass)){ startActivity() } if (login == pass){ startActivity() } }

Kotlin:使Java函数可调用中缀

尝试使用BigInteger类中的pow函数作为具有相同名称的中缀函数。 问题是现在pow缀运算符递归地调用自己。 是否有可能使用与函数名相同的中缀运算符来调用Java函数? package experiments import java.math.BigInteger infix fun BigInteger.pow(x: BigInteger): BigInteger { return this.pow(x); } fun main(args : Array) { val a = BigInteger(“2”); val b = BigInteger(“3”); println(a + b) println(a pow b) } 原因: Exception in thread “main” java.lang.StackOverflowError at kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull(Intrinsics.java:126) at experiments.KotlinTestKt.pow(KotlinTest.kt) at experiments.KotlinTestKt.pow(KotlinTest.kt:6)

检查计算的输出是否是整数

什么是检查计算输出是整数的方法? 我试过这样做: if ((i / 3) is Int ) { print(“Whole Number”) } 但它似乎在检查variables的types,而不是输出是什么。 编辑:显然,如果variables是一个整数,它会自动舍入操作的输出,所以我不得不做这样的事情: if((i.toFloat()/3) == (i / 3).toFloat()){ println(“Whole Number”)

没有getter的Kotlin构造函数参数

我有以下代码: class ViewHolder(itemView: View, val ui: ViewUI) 我不希望字段ui有一个getter,但kotlin默认生成它,因为它是一个在构造函数中定义的val。 在属性和字段文档中,我发现我可以用下面的代码生成一个私有的getter var setterVisibility: String = “abc” private set 但是我找不到在构造函数定义中做到这一点的方法

从Kotlin任何显式inheritance – 可以和它是如何做到的?

Kotlin文档说 Kotlin中的所有类都有一个公共超类Any ,这是一个没有声明超类的类的默认超类 如果我尝试并显式inheritance任何: class MyClass : Any { } 编译器给出一个错误: Kotlin:这个types有一个构造函数,因此必须在这里初始化 我一直无法findAny类的文档。 是否有可能明确从任何inheritance,如果是的话,你通过它是什么?

正则expression式模式Kotlin

kotlinlang中的任务:使用月份variables重写这个模式,使其与1992年6月13日的格式(两位数字,一个空格,一个月份缩写,一个空格,四位数字)匹配。 答案是: val month = “(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)” fun getPattern(): String = “””\d{2} ${month} \d{4}”””我不明白${month} 。 怎么运行的?

我不能在Kotlin的活动之间进行联系

你好,这是我的第一个应用程序kotlin我想使年度费率计算应用程序的问题是我有4个活动每个活动自己的按钮和编辑的文本我不想当用户单击按钮,程序从编辑的文本中获取数字并且只进行计算并将其保存在活动2和3的某处和相同的工作中,但是当他单击最后一个活动的最后一个按钮时,我想要调用所有结果并在ViewText中显示它 问题是:如何保存数据每当有需要的时候打电话给我? 第一个活动 class st { var int_P: Double? = null var ctl_P: Double? = null public constructor(int_P: Any, ctl_P: Any) { this.int_P = int_P.toString().toDouble() //Physique this.ctl_P = ctl_P.toString().toDouble() public fun GetMP(): Double { return (this.int_P!! + (this.ctl_P!! * 2)) / 3 } } Btn_Next1.setOnClickListener ({ var int_P = java.lang.Double.parseDouble(edit_IP.text.toString()) //Physique var ctl_P = java.lang.Double.parseDouble(edit_CP.text.toString()) […]

在Kotlin中交换函数

有没有更好的方法来写java通用的交换function,而不是java 如何在Java中编写基本的交换function 。 有没有kotlin语言function可以使通用交换function更简洁直观?

如果我删除类中的“var”关键字有什么区别?

你能告诉我代码A和代码B的区别是什么? 代码A class Person(firstName: String) { } 代码B class Person(val firstName: String) { }