kotlin关键词和运算符(as,break,class,continue,do,else,fun,in,is,var,val,when,while,by...)

本文介绍了Kotlin的关键词和运算符。包括硬关键词,如as、break等;软关键词,如by、catch等;修饰符关键字,如actual、abstract等;特殊标识符,如field、it;还列举了Kotlin支持的运算符和特殊符号,如数学、赋值、逻辑运算符等。

版权声明:本文为延成原创文章,转载请标明出处

学习kotlin可直接查看Kotlin官方文档,既方便又实用

关键词和运算符

硬关键词

以下标记始终被解释为关键字,不能用作标识符:

  • as

    • 用于类型转换
    • 指定导入的别名
  • as?用于安全型铸件

  • break 终止循环的执行

  • class宣布一个班级

  • continue 进入最近的封闭循环的下一步

  • do开始一个do / while循环(带后置条件的循环)

  • else定义if表达式的分支,该分支在条件为false时执行

  • false指定布尔类型的“false”值

  • for开始一个for循环

  • fun声明一个函数

  • if开始一个if表达式

  • in

    • 指定在for循环中迭代的对象
    • 用作中缀运算符来检查值是否属于范围,集合或定义“包含”方法的其他实体
    • 在用于相同目的的表达式时使用
    • 将类型参数标记为逆变
  • !in

    • 用作运算符来检查值是否不属于范围,集合或定义“包含”方法的其他实体
    • 在用于相同目的的表达式时使用
  • interface声明一个接口

  • is

    • 检查某个值是否具有某种类型
    • 在用于相同目的的表达式时使用
  • !is

    • 检查值是否具有某种类型
    • 在用于相同目的的表达式时使用
  • null 是表示不指向任何对象的对象引用的常量

  • object同时声明一个类及其实例

  • package指定当前文件的包

  • return 从最近的封闭函数或匿名函数返回

  • super

    • 指的是方法或属性的超类实现
    • 从辅助构造函数中调用超类构造函数
  • this

    • 指当前的接收器
    • 从辅助构造函数调用同一个类的另一个构造函数
  • throw 抛出一个例外

  • true指定布尔类型的“true”值

  • try 开始一个异常处理块

  • typealias声明一个类型别名

  • val声明只读属性或局部变量

  • var声明一个可变属性或局部变量

  • when表达式开始时(执行给定的一个分支)

  • while开始一个while循环(带前置条件的循环)

软关键词

以下标记在适用时在上下文中充当关键字,并可在其他上下文中用作标识符:

  • by
    • 将接口的实现委托给另一个对象
    • 将属性的访问器的实现委托给另一个对象
  • catch开始处理特定异常类型的块
  • constructor声明主要或辅助构造函数
  • delegate用作注释用户站点目标
  • dynamic引用Kotlin / JS代码中的动态类型
  • field用作注释用户站点目标
  • file用作注释用户站点目标
  • finally开始一个块,它在try块退出时始终执行
  • get
    • 声明属性的getter
    • 用作注释用户站点目标
  • import 将另一个包中的声明导入当前文件
  • init开始初始化块
  • param用作注释用户站点目标
  • property用作注释用户站点目标
  • receiver用作注释用户站点目标
  • set
    • 声明属性的setter
    • 用作注释用户站点目标
  • setparam用作注释用户站点目标
  • where指定泛型类型参数的约束

修饰符关键字

以下标记充当声明修饰符列表中的关键字,可用作其他上下文中的标识符:

  • actual表示多平台项目中特定于平台的实现
  • abstract将类或成员标记为抽象
  • annotation声明一个注释类
  • companion声明一个伴侣对象
  • const将属性标记为编译时常量
  • crossinline禁止传递给内联函数的lambda中的非本地返回
  • data指示编译器为类生成规范成员
  • enum声明一个枚举
  • expect将声明标记为特定于平台,期望在平台模块中实现。
  • external将声明标记为不在Kotlin中实现(可通过JNI或JavaScript访问)
  • final禁止覆盖会员
  • infix允许以中缀表示法调用函数
  • inline告诉编译器内联函数以及在调用站点传递给它的lambdas
  • inner允许从嵌套类引用外部类实例
  • internal标记声明在当前模块中可见
  • lateinit允许在构造函数之外初始化非null属性
  • noinline关闭传递给内联函数的lambda的内联
  • open允许子类化或重写成员
  • operator将函数标记为重载运算符或实现约定
  • out将类型参数标记为协变
  • override将成员标记为超类成员的覆盖
  • private将声明标记为在当前类或文件中可见
  • protected标记声明在当前类及其子类中可见
  • public标记声明在任何地方都可见
  • reified将内联函数的类型参数标记为在运行时可访问
  • sealed声明一个密封类(具有受限子类的类)
  • suspend将函数或lambda标记为挂起(可用作协程)
  • tailrec将函数标记为尾递归(允许编译器用迭代替换递归)
  • vararg允许为参数传递可变数量的参数

特殊标识符

以下标识符由编译器在特定上下文中定义,并可在其他上下文中用作常规标识符:

  • field在属性访问器中使用,以引用属性的支持字段
  • it在lambda中用于隐式引用其参数

运算符和特殊符号

Kotlin支持以下运算符和特殊符号:

  • +,-,*,/,%-数学运算符
  • *也用于将数组传递给vararg参数
  • =
    • 赋值运算符
    • 用于指定参数的默认值
  • +=,-=,*=,/=,%=- 赋值运算
  • ++,— 递增和递减运算符
  • &&,||,!-逻辑“与”,“或”,“不”运算符(用于位运算,使用对应的中缀的功能)
  • ==,!=- 相等运算符(转换equals()为非基本类型的调用)
  • =,!- 引用平等运算符
  • <,>,<=,>=- 比较运算符(翻译成的呼叫compareTo()对于非原始类型)
  • [,]- 索引访问运算符(转换为get和的调用set)
  • !! 断言表达式为非null
  • ?.执行安全调用(如果接收方为非null,则调用方法或访问属性)
  • ?:如果左侧值为null(elvis运算符),则获取右侧值
  • ::创建成员引用或类引用
  • …创造一个范围
  • : 将名称与声明中的类型分开
  • ?将类型标记为可为空
  • ->
    • 分离lambda表达式的参数和主体
    • 在函数类型中分隔参数和返回类型声明
    • 分隔when表达式分支的条件和主体
  • @
    • 介绍了一个注释
    • 引入或引用循环标签
    • 介绍或引用lambda标签
    • 从外部范围引用’this’表达式
    • 引用外部超类
  • ; 在同一行上分隔多个语句
  • $引用字符串模板中的变量或表达式
  • _
    • 替换lambda表达式中未使用的参数
    • 在解构声明中替换未使用的参数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值