Kotlin关键字操作符说明及使用示例与解释

  • Kotlin关键字目录
    • fun
    • val var
    • as
    • in
    • is
    • When
    • typealias
    • data

Kotlin关键字目录

本篇文章作为快速入门kotlin的小指引,同时作为作者本人方便查询的文章,如有缺少或者错误的地方,希望大家在下方不吝赐教:

fun

  • 声明一个函数
// 无返回值
fun getName(){}
// 有返回值
fun getName():String{return "name"
}

val var

  • val 声明一个只读属性或局部变量
  • var 声明一个可变属性或局部变量
val a: Int = 1  // 立即赋值
val b = 2   // 自动推断出 `Int` 类型
val c: Int  // 如果没有初始值类型不能省略
c = 3       // 明确赋值var x = 5 // 自动推断出 `Int` 类型
x += 1

as

  • 用于类型转换
/*** “不安全的”转换操作符 * 通常,如果转换是不可能的,转换操作符会抛出一个异常。因此,我们称之为不安全的*/
val x: String = y as String//null 不能转换为 String 因该类型不是可空的, 即如果 y 为空,上面的代码会抛出一个异常
val x: String? = y as String?/*** “安全的”(可空)转换操作符* 为了避免抛出异常,可以使用安全转换操作符 as?,它可以在失败时返回 null:* 请注意,尽管事实上 as? 的右边是一个非空类型的 String,但是其转换的结果是可空的。*/
val x: String? = y as? String
  • 为导入指定一个别名
/*** 当import 引用的包名出现重复时,我们可以使用as对其进行本地重命名来消歧义*/
import org.example.Message // Message 可访问
import org.test.Message as testMessage // testMessage 代表“org.test.Message”

in

  • i in a…b 表示 i 是否在 a 到 b 区间
  • in 可以检查字符区间,对象区间(实例对象的类必须实现Comparable),集合
fun main(args: Array<String>){println('c' in 'a'..'d');println(1 in 0..100)
}
//要反向迭代数字,请使用 downTo 函数而不是 ..
for (i in 4 downTo 1) print(i)//!in  用作中缀操作符以检测一个值不属于一个区间

is

  • 通过使用 is 操作符或其否定形式 !is 来检测对象是否符合给定类型
if (obj is String) {print(obj.length)// obj  自动转换为字符串//在许多情况下,不需要在 Kotlin 中使用显式转换操作符,因为编译器跟踪不可变值的 is-检测以及显式转换,并在需要时自动插入(安全的)转换:
}
if (obj !is String) { // 与 !(obj is String) 相同print("Not a String")
}else {print(obj.length)
}

When

  • when 表达式取代了类 C 语言的 switch 语句。其最简单的形式如下:
when (x) {0, 1 -> print("x == 0 or x == 1")2 -> print("x == 2")3 -> print("x == 3")else -> { // 注意这个块print("x is neither 1 nor 2")}
}

typealias

  • 类型别名为现有类型提供替代名称。 如果类型名称太长,你可以另外引入较短的名称,并使用新的名称替代原类型名
typealias NodeSet = Set<Network.Node>typealias FileTable<K> = MutableMap<K, MutableList<File>>//你可以为函数类型提供另外的别名:
typealias MyHandler = (Int, String, Any) -> Unittypealias Predicate<T> = (T) -> Boolean//你可以为内部类和嵌套类创建新名称:
class A {inner class Inner
}
class B {inner class Inner
}typealias AInner = A.Inner
typealias BInner = B.Inner

data

  • 我们经常创建一些只保存数据的类,在 Kotlin 中,这叫做 数据类 并标记为 data
data class User(val name: String, val age: Int)

Kotlin关键字操作符说明及使用示例与解释相关推荐

  1. Kotlin关键字总结

    Kotlin关键字可分为三类: 1.硬关键字:这些关键字无论在什么情况下都不能用作标识符. 2.软关键字: 这些关键字可以在它们不起作用的上下文中用作标识符. 3.修饰符关键字: 这些关键字也可以在代 ...

  2. C++词法记号规则之标识符 关键字 操作符 分隔符 空白符

    C++学习笔记 词法规则之标识符 关键字 操作符 分隔符 空白符 转自http://blog.csdn.net/u013174689/article/details/17413755 标识符 标识符是 ...

  3. Kotlin重载操作符和约定声明规则

    一.重载算数运算符 ​ Kotlin中最简单明了的使用约定的例子就是算数运算符.在Java中算数运算符只可以使用在基本数据类型上,+号可以使用在String上.当我们想在BigInteger类上使用+ ...

  4. kotlin集合操作符——映射操作符

    目录 flatMap groupBy map mapIndexed mapNotNull 关于集合的操作符,直接引用书上的内容,基本上总结的很好了. 集合示例: val list = listOf(1 ...

  5. kotlin集合操作符——过滤操作符

    目录 drop dropWhile dropLastWhile filter filterNot filterNotNull slice take takeLast takeWhile 关于集合的操作 ...

  6. scala语言示例_var关键字与Scala中的示例

    scala语言示例 Scala var关键字 (Scala var keyword) The var Keyword in scala is used to declare variables. As ...

  7. kotlin 构造函数_Kotlin程序| 主要构造函数示例

    kotlin 构造函数 主要建设者 (Primary Constructor) A Kotlin class have Primary constructor and one or more Seco ...

  8. scala中def_def关键字以及Scala中的示例

    scala中def Scala def关键字 (Scala def keyword) The def keyword in Scala is used to declare functions and ...

  9. 《C Primer Plus》第二章——C语言概述(程序示例与解释,提高程序可读性,函数的定义与使用,调试,关键字,复习题与编程练习)

    文章目录 第二章-C语言概述 本章内容 简单的C程序示例 示例解释 快速概要 程序细节 简单程序的结构 提高程序可读性的技巧 进一步使用C 多个函数 调试程序 语法错误 语义错误 程序状态 关键字和保 ...

最新文章

  1. 快手数据中台建设实践
  2. 标 题:[转帖]SQL Server日期计算(收藏)
  3. C#封装类似任务管理器CPU使用记录图
  4. Mac下Virtual Box Host-Only网络配置
  5. SAP Spartacus Organization Unit List三个按钮的技术实现
  6. 分享轮子-flutter下拉刷新上拉加载
  7. mysql update nowait_MySQL 8.0新特性 -- nowait以及skip locked
  8. 使用ztree展示树形菜单结构
  9. 从零基础入门Tensorflow2.0 ----一、1.2 实战分类模型(数据归一化)
  10. centos6.8 hugepage设置
  11. ajax die,check_ajax_referer()
  12. Vue3 京东到家项目实战第二篇(商家详情页面及购物车完整逻辑开发) 进阶式掌握vue3完整知识体系
  13. STM32入门-学习STM32要掌握的内容
  14. oracle转换人民币,月光软件站 - 编程文档 - 数据库 - 如何在ORACLE中實現人民幣大寫的轉換...
  15. 中国教育培训机构市场运营状况与投资咨询预测报告2022年版
  16. 有些视频不显示IDM的下载按钮
  17. 物理机服务器装系统,物理机安装黑群晖DSM6.1.7系统
  18. 润达软件:双十一临近,百度商城悄然上线
  19. docker可以把应用及其相关的_Docker及其相关技术
  20. VisualBox解决CentOS中yum安装失败的问题

热门文章

  1. uniapp全栈构建模板,拿来即用
  2. 医学图像处理中的深度学习模型
  3. QXmpp源码 GuiClient
  4. Content Aware ABR技术(七)
  5. 一打开控制台窗口就中文输入_Mac如何设置手写输入?
  6. 关于标准时间格式的时区问题
  7. 一起来捉妖超强辅助脚本 轻松获取妖灵快速升级攻略
  8. html颜色王全透明,王老师html零基础课后练习第8课——圆角阴影hover
  9. 【通用大语言模型】GLM-130B:一个开放的双语预训练模型
  10. android电视分辨率是多少合适,液晶电视怎么调分辨率 分辨率多少合适