我正在关注有关 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()不定义为挂起函数?
我在理解如何实现扩展函数时遇到问题,该函数调用类内的其他函数。我的目标是实现在这种情况下调用的扩展函数 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)
我已经初始化了这样的字符串数组
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)