用``this'表示接收者在Kotlin中的标签的位置



我是科特林的新手。我对Kotlin标记的this与前缀@或Postfix @

的差异感到好奇

我刚刚看到了写入SignInActivity@this的代码,该代码似乎与this@SignInActivity完全相同。

这两个完全相同吗?如果没有,两者有什么区别?

我试图对*@this表格进行一些研究,但我找不到任何参考。我只能找到这个官方文档,展示了this@*。如果有人可以与我应该转到的正确参考分享我。

SignInActivity@ this只是this的另一个表达式,其功能是定义一个不必要的标签,称为SignInActivity(与实际类名称无关)this

根据Kotlin语法文档:

labelReference (used by atomicExpression, jump)
   : "@" ++ LabelName
   ;
labelDefinition (used by prefixUnaryOperation, annotatedLambda)
  : LabelName ++ "@"
  ;

hello@只是一个名称" hello"(用于返回和跳跃)的标签,

@hello是标记的环或块的参考。

这些表达式可以使用如下:

loop@ for (i in 1..100) {
    for (j in 1..100) {
        if (...) break@loop //jump to loop@
   }
}

signinactivity@这意味着标志性。此@signActivity的意思是 - 使用signActivity上下文而不是本地上下文(通常是在封闭中)。

最新更新