Kotlin

分类下相关文章

Koltin EditText 报错:Type mismatch: inferred type is String but Editable! was expected

为了给 EditText 控件设置初始值,用 kotlin 写了如下代码: this.input.text = "100" 没想到提示错误: 若强行编译,则会报错: Type mismatch: inferred type is String but Editable! was expected 可是我印象中 kotlin 是可以这样直接赋值的啊。。。 突然想到,莫非 EditText 不能这样搞,而 TextView 不可以。。。 测试了一下,确实是这样。改成 this.input.setText("100") 就可以了。 总结 TextV ...

阅读全文...

Kotlin 编译错误:Unresolved reference: mutableListOf

下面一段 Kotlin 代码在编译时报错: class ResultListAdapter(val resultList: mutableListOf<PercentPrice>): RecyclerView.Adapter<ResultListAdapter.ResultViewHolder>() { 报错信息为: Unresolved reference: mutableListOf 原来,mutableListOf 是一个函数方法,只能在类型 MutableList 初始化时使用。 所以,这里应该使用类 MutableList。 class R ...

阅读全文...

Kotlin 关键字 apply

看 Android RecyclerView 官方文档时 https://developer.android.com/guide/topics/ui/layout/recyclerview 看到这样一段示例代码。里面有 apply 关键字,第一次见。 recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view).apply { setHasFixedSize(true) layoutManager = viewManager adapter = viewAdapter } 猜测, apply 作用域内的代码 ...

阅读全文...

如何搜索 Kotlin 对应的 Android 控件使用文档

例如,我想查找 kotlin recyclerview 相关的使用文档。 看起来这是个幼稚的问题,谁还不会用 Google 啊,但是这个问题着实困扰了我一天。 如果使用关键词 “recyclerview kotlin” 进行搜索,会发现排名靠前的都是些三方网站的教程,内容质量及代码规范性都不高。 而直接搜素 “recyclerview”,则可以直接找的 Google Android 的官方开发文档,里面同时提供了 Kotlin 和 Java 的代码示例。介绍也更靠谱。 对应的文档地址如下: https://developer.android.com/guide/topics/ui/layo ...

阅读全文...

Kotlin 变量名后面加双感叹号代表什么

在查 Kotlin 的 RecyclerView 用法时,发现一段令人费解的代码: override fun getItemCount(): Int = list?.size!! size 后面的双叹号代表什么呢? 双感叹号可以看作是程序员在当前代码行发了一个毒誓: 如果叹号前的变量为 null,就让上天抛出 NPE,让我的 Android 应用崩溃。 这是一个多么脑残的设计。。。 我都想象不出任何使用双叹号的场景。。。 测试代码 >>> var s: String? = null >>> println(s) null >>> pr ...

阅读全文...

Kotlin Data Class 结合 List 使用

示例,使用 Kotlin 计算价格 100 分别涨跌幅 10% 后的分段价格。 示例代码 prices.kt data class PercentPrice(val percent: Int, val price: Double) fun main(args: Array<String>) { println("Start!") val price = 100.0 val prices = mutableListOf<PercentPrice>() for (i in 1..10 step 1) { ...

阅读全文...

Android Studio 中使用 Kotlin REPL 交互式编程环境

笔记本的 Windows 10 WSL 中没有装 kotlinc-jvm,也不打算装了,因为 C 盘空间太宝贵。于是想起,Android Studio 中的 kotlin 插件是否支持 REPL。果然在顶部菜单的 Tools - Kotlin - Kotlin REPL 中找到。 测试了一下,体验虽然不如命令行下的 kotlinc-jvm 好,但是能凑合着用。 快捷键 Ctrl + Enter:执行代码 REPL REPL 是 Read-Eval-Print Loop 的缩写,即,“读取-执行-打印 循环”。更通俗地讲,是交互式编程环境。 ...

阅读全文...

Kotlin 浮点类型 Float 与 Double 的区别

Kotlin 有两种浮点数,一是 Float,另一个是 Double。两者的区别是: Float:单精度,小数点后位数 6~7 位 Double:双精度,小数点后位数 15~16 位 在 Kotlin Shell 中使用实际代码测试一下。 Kotlin 默认使用 Double 作为浮点型 >>> val b = 1.2345 >>> b.javaClass res15: java.lang.Class<kotlin.Double> = double 只有在浮点数最后加上 f 作为后缀,才能被定义为 Float 类型。 >>&gt ...

阅读全文...

Kotlin 变量后面的问号是什么意思

带问号的代表可以置空的变量 不带问号的代表不可为空的变量 kotlinc-jvm 中测试一下 打开 kotlinc-jvm,输入测试代码 >>> var i: Int = 1 >&gt ...

阅读全文...

Kotlin 代码风格/规范

类名 驼峰式,首字母大写。例如: ChinaCity 函数名 驼峰式,首字母小写。例如: onCreate findViewById VIM 代码缩进原则 autocmd FileType kotlin setl shiftwidth=4 tabstop=4 softtabstop=4 colorcolumn=79 expandtab TAB 需要转换为空格,目前设置为跟 Python 一样的规则。 ...

阅读全文...

Kotlin 中 var 与 val 定义变量的区别,及使用场景

看 Kotlin 项目示例代码中,经常出现 var / val 定义变量的情况。于是查了一下两者的区别: var 定义的变量可以被再次赋值。var 是 variable 的缩写。 val 定义的变量不可以被再次赋值,即引用不可变。val 大概是 value 的缩写。类似于 Java 和 Dart 中的 final 关键字。 测试代码: >>> var a: Int = 1 >>> a res2: kotlin.Int = 1 >>> a = 2 >>> a res4: kotlin.Int = 2 >>& ...

阅读全文...

WSL Ubuntu 安装 Kotlin 交互式 Shell

心血来潮,想用 Kotlin 写一个 Android 应用。但是由于对 Kotlin 语法不熟悉,需要不断写测试代码,由于不习惯在 Android Studio 下测试,所以想安装一个命令行版的 Kotlin 交互式 Shell 来使用。 由于我在 WSL 下的 Ubuntu 18.04 开发,所以没法使用 snap 安装。 $ sudo snap install --classic kotlin Interacting with snapd is not yet supported on Windows Subsystem for Linux. This command has been l ...

阅读全文...

近期节日

查看更多节日