美文网首页
Kotlin基础-标签

Kotlin基础-标签

作者: 孙小磊 | 来源:发表于2017-06-04 21:28 被阅读0次

关于标签

在kotlin中使用过标识符跟@符号来定义一个标签,使用@符号后面跟标识符来引用一个标签
在kotlin中每一个函数都与一个或多个地址对应,而每个变迁也是与一个或多个地址对应,所以函数本身就是一个标签
由于匿名还属没有函数名,那么我们可以自定义一个标签来指向这个函数地址

This表达式

在Kotlin,有时候需要调用自身的函数或者变量,会用到this表达式
1、在类的成员中,this指的是该类的当前对象
2、在扩展函数或者带接受者的函数字面值中,this表示在点左侧传递的接收者参数
3、如果this没有限定符,它指的是最内层的包含它的作用域。要引用其他作用域中的this,请使用 标签限定符

关于标签的指向:

下面会用this演示标签的指向:



调用


当我们在调用ThisInnerClasstest()函数的时,会调用foo的扩展函数
foo函数中 我们将a指向ThisClass ,b指向ThisInnerClassb1指向了ThisInnerClass的变量messagec1只想扩展函数foo
从打印结果我们可以看出:
aThisClass的地址,
bThisInnerClass的地址
b1指向的是ThisInnerClass对象的变量message
c1指向的是函数foo点左侧的接收者参数
而c是当前作用域的对象的值,即同foo函数
关于标签处返回 return标签

上面说到每个函数既是标签
当我们return@forEach的时候那么我们就会推出当前循环,打印结果如下


而我们return@returnTest的时候,作用于就发生了改变,return的是returnTest函数,所以打印的结果如下
关于标签出跳出 break 和continue

当我们在做循环的时候 如果break跟标签的话,那么他就会指向相应的循环
如下:


我们在break跟@loopInner 指向的是内层循环,跳出的是内层循环,so 结果如下:

而当我们break跟外层循环标签时,如下:

他跳出的就是指向的外层循环,结果如下:


相关文章

网友评论

      本文标题:Kotlin基础-标签

      本文链接:https://www.haomeiwen.com/subject/xyjbfxtx.html