android - Kotlin:IT 和 THIS 关键字之间的区别
问题描述
it
在一次 kotlin 采访中,有人问我&this
关键字的区别。
我在谷歌上搜索但无法找到问题的正确答案。
有人可以指导我这两者之间的实际区别是什么?
我知道这是一个非常基本的问题,我是 kotlin 的新手。
解决方案
您需要了解范围函数:
Kotlin 标准库包含几个函数,其唯一目的是在对象的上下文中执行代码块。当您在提供了 lambda 表达式的对象上调用此类函数时,它会形成一个临时范围。
在这个范围内有一个Context对象,this
或者it
在 Scope functions中run
,范围(暂时)更改为您正在调用此函数的对象的范围:apply
with
val str = "Hello"
str.run {
//Here this refers to str
}
在 Scope functionslet
中,also
作用域没有改变(与调用者作用域相同),但您的 lambda 将接收it
lambda 内部的上下文:
val str = "Hello"
str.let {
//Here it refers to str
}
您可以查看链接以获取更多信息。
推荐阅读
- python - Selenium Firefox Scraping:占用大量内存并崩溃
- c - (sysmalloc: Assertion) 使用多个 MALLOCS 在 HEAP 中填充三重指针
- r - 嵌套的 for 循环不在 R 中运行
- java - 在spring data jpa中加入表
- hyperledger-fabric - 如何将两个不同的 Hyperledger Fabric 网络合并到具有两个不同通道的单个网络
- c - AIO 异步 I/O 中的回调
- javascript - 如何在快递服务器中获取发布请求参数?
- php - MySQL8 与 php7.3 和 Symfony 5 的连接不起作用
- azure-resource-manager - 有人知道 Azure 蓝图的未来吗?
- javascript - 如何在柏树中使用鼠标悬停选项