![]() |
1
2
马特的回答很好地解释了一切,我会尽力去看看 怎样 你可以去读这样的代码。
现在跳过第一个词,最重要的是第二个词:
大括号告诉您它是一个块函数,而不是一个线性函数,因此您期望的基本结构是:
与Java一样,角括号中的东西提供通用参数,所以我们现在可以跳过,直接转到下一个最重要的位,即
正在定义的函数的名称
:
有了这些,我们就可以读其他的了。
这个
(
继续,我们有
功能参数
括号里还有两个:第一个叫做
括号后面是
返回类型
这个函数本身,
最后,大括号中是实际的
代码
函数的一行,返回表达式的值。
虽然这是一个简短的声明,但它非常抽象,包含了很多内容,所以难怪你发现这很难做到!{(格式类似于Java方法声明Kotlin),但其相当有表现力,所以等效代码往往比Java短一些。而泛型使它更复杂。)如果你刚刚开始学习Kotlin,我会建议更容易一些的东西: (好消息是,和Java一样,你不需要经常读取STDLIB代码。)虽然Kotlin的DOC注释很少达到Java的示例级别,但它们通常还是足够的。 |
![]() |
2
4
所以,像Java一样,这是一个通用的函数。它有两个类型参数T,它的类型是“任何”(“任何”都像Java中的“对象”)和R。输入参数是一个空的T,由问号表示。可以为空的类型意味着该值可以为空。另一个函数参数是接受t(不可为空的类型)并返回r的函数。函数的返回类型是可为空的r。函数体表示,如果输入不为空,则调用并将其传递给回调并返回该值。如果输入为空,则返回的值为空。 |
![]() |
3
3
让我们逐个剖析函数定义:
该函数相当于此Java方法(除了内联和可空类型):
|
![]() |
danny · 如何在kotlin中使用图形2d与paint() 1 年前 |
![]() |
Vetalll · Java、JDBC在重复密钥更新通配符上的插入 2 年前 |
![]() |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 2 年前 |
![]() |
Michel · 在Android上后台播放音频超过一分钟 2 年前 |
![]() |
Ashish Joshi · 未使用导航图弹出片段 2 年前 |