我是科特林的新手。我对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上下文而不是本地上下文(通常是在封闭中)。