首页 > 解决方案 > Kotlin:IT 和 THIS 关键字之间的区别

问题描述

it在一次 kotlin 采访中,有人问我&this关键字的区别。

我在谷歌上搜索但无法找到问题的正确答案。

有人可以指导我这两者之间的实际区别是什么?

我知道这是一个非常基本的问题,我是 kotlin 的新手。

标签: androidkotlin

解决方案


您需要了解范围函数

Kotlin 标准库包含几个函数,其唯一目的是在对象的上下文中执行代码块。当您在提供了 lambda 表达式的对象上调用此类函数时,它会形成一个临时范围。

在这个范围内有一个Context对象,this或者it

在 Scope functions中run,范围(暂时)更改为您正在调用此函数的对象的范围:applywith

val str = "Hello"
str.run {
    //Here this refers to str
}

在 Scope functionslet中,also作用域没有改变(与调用者作用域相同),但您的 lambda 将接收itlambda 内部的上下文:

val str = "Hello"
str.let {
    //Here it refers to str
}

您可以查看链接以获取更多信息。


推荐阅读