- Kotlin从入门到进阶实战
- 陈光剑
- 342字
- 2021-04-02 03:46:20
2.2 关键字与修饰符
通常情况下,编程语言中都有一些具有特殊意义的标识符是不能用作变量名的,这些具有特殊意义的标识符叫做关键字(又称保留字),编译器需要针对这些关键字进行词法分析,这是编译器对源码进行编译的基础步骤之一。
Kotlin中的修饰符关键字主要分为:类修饰符、成员修饰符、访问权限修饰符、协变逆变修饰符、函数修饰符、属性修饰符、参数修饰符、具体化类型修饰符等。这些修饰符关键字如表2-1~表2-8所示。
表2-1 Kotlin中的类修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41061.jpg?sign=1738910032-NDH7KGLX2MPw3zkjEWiDLdOMgG1rVnq2-0-4d99a4b5a3b7103a9c2a3d43bb939234)
表2-2 Kotlin中的成员修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41063.jpg?sign=1738910032-Bar3crdaUPuP0i9zYveijuS8iR6EChll-0-50af26823bb4964cea04e1712a829af2)
表2-3 Kotlin中的访问权限修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41065.jpg?sign=1738910032-CIx34VyfQrM5t3MFXipZDjsqpQN6BFwA-0-c08066979a666409d41203006e5fdb97)
表2-4 Kotlin中的协变逆变修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41067.jpg?sign=1738910032-2eMQVS0pNfrnW8f98M4WQazu47qoo9oh-0-48fbfa7d20fa40fa19edc3f28ddbff87)
表2-5 Kotlin中的函数修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41069.jpg?sign=1738910032-18cSCRj5FSk7M5cz6awUO831SlFEynf4-0-c4f574322450f8c2f863578d0dbf4101)
表2-6 Kotlin中的属性修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T31_41071.jpg?sign=1738910032-qlRncxfUh3VS8Yw1Ug0MZmKFyGFwIYqf-0-f4d530027599460b4ccf8c14468ad146)
表2-7 Kotlin中的参数修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T32_40819.jpg?sign=1738910032-6Ks0EvKsT1MyBkBkYa0cHucCz9B8y5S5-0-59398fc76e1b6e845e571542bf99c9b5)
表2-8 Kotlin中的具体化类型修饰符
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T32_40821.jpg?sign=1738910032-Pbuv0XFJcUHsEL9LynzkpjmROXN4lQci-0-07021bbd52d1d500af65435d4d10d0bc)
一个crossinline代码实例如下:
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-P32_40824.jpg?sign=1738910032-LaDkp7DdlJ3rqSwGDyrI2SO9Al0XHVR4-0-696f4d738d99912b297cf81958af7469)
除了上面的修饰符关键字之外,还有一些特殊语义的关键字如表2-9所示。
表2-9 Kotlin中的关键字
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-T32_40823.jpg?sign=1738910032-pRh13ougvnAAIwK1qU8XWi1fogx6ZtI0-0-c5638ef2f39191ccbdad2f42f20bbcd0)
这些关键字定义在源码org.jetbrains.kotlin.lexer.KtTokens.java中。