Tag: 科特林

“重载解析模糊度错误”与另一个重载解决

我看到了这个问题 。 怎么可能是这条线添加了 fun Int.toUpperCase() = “” 这个问题 错误:(6,16) 重载分辨率模糊性: @InlineOnly public inline fun Char.toUpperCase():在kotlin.text中定义的字符 @InlineOnly public inline fun String.toUpperCase():在kotlin.text中定义的字符串 离开这段代码? fun main(args: Array){ var ab: String? = “hello” ab = null println(ab?.toUpperCase()) } 给出的参考问题的答案是有道理的,它只是不回答这里发生的事情。

Kotlin Coroutines文档中的素数示例如何工作?

我正在通过Kotlin的协程文件,并且一直沿用这个例子。 当我发现一个素数时,我很难理解它是如何计算的,特别是如何从filter函数返回并分配给cur ,以及如何从numbersFrom方法生成数字。 我已经添加了调试语句,以尝试并遵循正在运行的各种协程,但是我仍然失去了启动新协程并从其他人接收数字的逻辑流程。 https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md#prime-numbers-with-pipeline 代码: fun log(msg: String) = println(“[${Thread.currentThread().name}] $msg”) fun main(args: Array) = runBlocking { var cur = numbersFrom(context, 2) for (i in 1..10) { val prime = cur.receive() println(prime) cur = filter(context, cur, prime) } } fun numbersFrom(context: CoroutineContext, start: Int) = produce(context) { var x = start while (true) { […]

为什么公共课不能扩展私人课程?

我有一个类的层次结构: interface Repository // This class contains some common stuff for LocalRepository and RemoteRepository. I’m never going to use this class outside this file, so I make it private private abstract class BasicRepositoryImpl // these classes are designed to be instantiated in other files class LocalRepository : BasicRepositoryImpl(), Repository // error class RemoteRepository : BasicRepositoryImpl(), […]

通过委托来简化属性获取器

我有很多属性遵循这个模式,基本上只有从下面的模板变化的东西是: 初始化的值 属性名称 码 var foo: Double = 0.0 get() { update() return field } var foo2: Double = 1.23 get() { update() return field } 题 有什么办法可以使用委托来简化(减少代码的冗长)吗?

未解决的参考:Kotlin中的findViewById

fun Tryouts() { var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox CheckBox1.setChecked(false) } 我还是Kotlin的初学者,仅仅学习了kotlin的基本工作,我无法引用任何android小部件或者在Android Studio中更改它的状态,无论是TextView还是CheckBox或者RadioBox。 在所有情况下,findViewById的相同未解决的引用错误… 我不知道我在做什么错误,甚至是java转换输出相同的错误。

检查Kotlin中的字符串是否为空

在Java中,我们总是提醒使用myString.isEmpty()来检查一个字符串是否为空。 但是,在Kotlin中,我发现可以使用myString == “”或myString.isEmpty()甚至myString.isBlank() 。 有没有关于这方面的指导方针/建议? 还是仅仅是“任何事情都会让你的船摇晃”? 提前感谢喂养我的好奇心。 :d

Kotlin`shl`不工作

我试图将shl应用于Kotlin中的Int值: val a = 1092455 println(a.toString()) println(toString(bits(one))) println(toString(bits(one shl 16))) println(toString(bits(one shr 16))) 这会产生以下输出: 1092455 0000000000010000 1010101101100111 0000000000000000 0000000000000000 0000000000000000 0000000000010000 正如你所看到的, shr正确的结果是最左边的16位( 0000000000010000 )被移到右边,但是shl没有给出预期的输出( 1010101101100111 0000000000000000 )。 我错过了什么? 编辑: bits方法: fun bits(value: Int): BooleanArray { var x = value.toDouble() val result = BooleanArray (32) for (i in 31 downTo 0) { val d = […]

如何使用Kotlin从Firebase数据库检索数据?

这是我在Firebase上上传的模型: public class OnlineMatch{ private User user1; private User user2; public OnlineMatch(User firstPlayer, User secondPlayer) { this.user1 = firstPlayer; this.user2 = secondPlayer; } } 然后我以这种方式将数据发送到Firebase(kotlin): fun createMatch(match: OnlineMatch) { val matchList = database.child(“multiplayer”).push() matchList.setValue(match) } 因此,我的数据库结构如下: 如果我展开一个节点,我可以看到完美的对象:OnlineMatch(User1,User2) 现在我想查询数据库并获得一个ArrayList”。 我已经find了Firebase文档,但是我没有发现任何用处。 我能怎么做? 提前致谢。

Kotlin懒惰的默认属性

在Kotlin中,我如何定义一个具有惰性默认值的variables? 比如val就是这样的: val toolbarColor by lazy {color(R.color.colorPrimary)} 我想要做的是,有一个属性( toolbarColor )的默认值,我可以改变这个值的其他任何东西。 可能吗? 编辑:这是部分把戏。 var toolbarColor = R.color.colorPrimary get() = color(field) set(value){ field = value } 有没有可能通过写作来缓解这一点 var toolbarColor = color(R.color.colorPrimary) set(value){ field = value } 在默认值的计算方式懒惰? 目前它不会工作,因为color()需要一个只在稍后初始化的Context 。

Kotlin序列连接

val seq1 = sequenceOf(1, 2, 3) val seq2 = sequenceOf(5, 6, 7) sequenceOf(seq1, seq2).flatten().forEach { … } 这就是我正在做序列连接,但我担心它实际上是复制元素,而我所需要的是一个迭代器,它使用我给它的迭代器(seq1,seq2)中的元素。 有这样的function吗?