小编yra*_*as8的帖子

Android DAO何时使用挂起函数

我正在关注有关 Android 开发人员的 DAO 教程:

https://developer.android.com/codelabs/android-room-with-a-view-kotlin#5

他们说:
默认情况下,所有查询都必须在单独的线程上执行。
Room 有 Kotlin 协程支持。这允许您的查询使用挂起修饰符进行注释,然后从协程或另一个挂起函数调用。

Dao接口如下:

@Dao
interface WordDao {

    @Query("SELECT * FROM word_table ORDER BY word ASC")
    fun getAlphabetizedWords(): List<Word>

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    suspend fun insert(word: Word)

    @Query("DELETE FROM word_table")
    suspend fun deleteAll()
}
Run Code Online (Sandbox Code Playgroud)

为什么getAlphabetizedWords()不定义为挂起函数?

android kotlin kotlin-coroutines

7
推荐指数
1
解决办法
3413
查看次数

使用类中的几个函数实现扩展函数 Kotlin

我在理解如何实现扩展函数时遇到问题,该函数调用类内的其他函数。我的目标是实现在这种情况下调用的扩展函数 open(),find()并且close().

Fridge 类如下:

class Fridge {
    fun open() = println(1)
    fun find(productName: String): Product {
        println(productName)
        return 4
    }

    fun close() = println(3)
}
Run Code Online (Sandbox Code Playgroud)

我对编写单个扩展函数没有问题,可以说:

fun Double.addInt(i: Int) = this + i.toDouble()

但是我同时对多个函数感到困惑,指定的返回类型也让我感到困惑。我所拥有的是:

fun Fridge.take(productName: String): Product {
    open()
    find(productName)
    close()
    //return this.find(productName)
}
Run Code Online (Sandbox Code Playgroud)

我在哪里犯了错误?现在我猜它是返回类型,但是如何返回Product?

(这是来自 的任务hyperskill)

在此处输入图片说明

kotlin

3
推荐指数
1
解决办法
56
查看次数

在 Kotlin 中定义数组类型

我已经初始化了这样的字符串数组

var capitals = arrayOf("Tokyo","Moscow","Paris","Washington","Beijing")
Run Code Online (Sandbox Code Playgroud)

但我没有指定它的类型为String。我想当我在元素之后使用 arrayOf 构造函数时,我应该指定类型。

在此输入图像描述

尝试下面的代码会给我错误属性 getter 和 setter 预期

为什么我不能在括号内指定类型<>?

var capitals = arrayOf("Tokyo","Moscow","Paris","Washington","Beijing"):Array<String>
Run Code Online (Sandbox Code Playgroud)

kotlin

2
推荐指数
1
解决办法
2023
查看次数

标签 统计

kotlin ×3

android ×1

kotlin-coroutines ×1