Tag: 科特林

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) { }

将可空types转换为不可空types?

我有一堆有可空属性的bean,如下所示: package myapp.mybeans; data class Foo(val name : String?); 我在全球空间里有一个方法就是这样: package myapp.global; public fun makeNewBar(name : String) : Bar { … } 而在其他地方,我需要从Foo内部的东西上制作一个Bar 。 所以,我这样做: package myapp.someplaceElse; public fun getFoo() : Foo? { } … val foo : Foo? = getFoo(); if (foo == null) { … return; } // I know foo isn’t null […]

Kotlin’直到’创建IntRange垃圾的乐趣

我正在使用until缀乐趣为我的循环下面 for (x in 0 until bodies.size) bodies[x]() 当用YourKit分析我的代码时,我注意到我有大量的IntRange对象(约2k /秒)。 当我切换循环使用int…int rangeTo直接它不会创建任何垃圾。 for (x in 0..bodies.size-1) bodies[x]() 有人可以解释这两者之间的区别吗? 从我可以告诉Int.until简单地返回this .. to public infix fun Int.until(to: Int): IntRange { val to_ = (to.toLong() – 1).toInt() if (to_ > to) throw IllegalArgumentException(“The to argument value ‘$to’ was too small.”) return this .. to_ }