kotlin学习笔记
来源:互联网 发布:淘宝有种苗吗 编辑:程序博客网 时间:2024/06/04 19:57
kotlin学习笔记
基本知识
- 常量定义:val 常量名
- 变量定义:var 变量名
- 变量定义时加上数据类型,var 变量名:数据类型,由于kotlin有类型推断,所以类型可以省略不写。例如:var a:Int=5
- 将变量插入文字中,print(“我的名字是
username"),通过使用 {}的形式插入。 - kotlin中默认的浮点型是Double(双精度),大多数情况下不使用Float类型
- 类型安全:变量一旦定义,其类型不可更改。即不能给变量一个类型不同的值
- 元组(Tuple),给多个变量同时赋值,分二元(Pair)和三元(Triple)。例如:var (day,month,year)=Triple(28,3,2017)
- 可空类型:在kotlin中都是空类型安全的,所有变量默认被修饰为不可为null,必须显示在类型后添加”?”修饰符才可赋值为null。形式:var 变量:类型?
- 类型判断is,例如:(c is String)
- 强制转换:as,安全转换:as?
字符串
- 字符串用”“包裹,isEmpty()判断是否为空,count()获取数量,toCharArray()将字符串转为字符数组
- 字符用’ ‘包裹,isDigit()判断是否为数字,isLetter()判断是否为文字
- 字符串或字符的相连使用+
数组
- Array:Array(计数,{默认值})或arrayOf(元素1,元素2,元素3,元素n),大小固定,元素类型不可变。
- 创建1-10的数组,Array(10,{i -> i+1})
- 数组中元素计数:count(),空否:isEmpty(),获取其中的元素:数组名[索引],首元素:数组名.first,尾元素:数组名.last,获取前五个元素的快捷方法:component1到5
- 获取筛选重复元素后的数组:数组名.distinct()或用 数组名.toSet()转换为Set
- 切割数组:数组名.sliceArray()
- mutableList:MutableList<类型>或mutableListOf(“元素一”,”元素二”),大小可变,类型不可变。在末尾添加元素add()方法,添加一个数组addAll()方法。移除元素remove(“元素”),移除指定元素removeAt(索引)
集合Set
- set特点是无序不重复
- Set<类型>或setOf(“元素1”,”元素2”,”元素n”)
- 元素计数:count(),空否:isEmpty()
- 检查是否包含某个元素:contains(),包含另一个Set:containsAll()
- 转化为数组:toTypedArrray()
- 集合之间的加减乘除运算:intersect/subtract/union/minus(补集的被操作对象无须是Set类型)
- 转换为可变:toMutableSet
- MutableSet<类型>或mutableSetOf(元素1,元素2,元素3,…元素n),大小可变,类型不可变。在末尾增加元素:add()方法,添加另一个集合,addAll()方法。移出元素:remove(),移出另一个集合:removeAll()。
集合Map
- 无序可重复,类似字典
- 主要属性keys,values
- mapOf< key,value>(Pair(key,value),…)显示指定类型,可防止初始化值类型的错误。
- 元素计数:size(),空否:isEmpty()
- 获取某个key对应的value:get(),获取某个key对应的值当不存在时有默认值getOrDefault()
- 获取所有的key:集合.keys,获取所有的value:集合.values
- 转换为可变:集合.toMutableMap()
- 添加或更新:下标方法 map变量名[key]=value
- 移除元素:remove()函数
函数
- 函数定义:fun 函数名(参数1:数据类型,参数2:数据类型): 返回类型{return 值;}
- 可变参数修饰符:varary
- 高阶函数:参数或返回值的类型是函数型
- 函数型:(参数)->返回值
- lambda:一种无名函数的简写{(参数)->函数执行语句}其他语言称必包,即有能力访问其自身范围外的变量。
类
- class 类名 constructor(属性列表){更多属性和方法描述}
- 类的继承:class 类名(属性列表):父类名(属性列表){}
- 类的实例化:val 变量名=类名(属性)
- 类的属性与变量定义相似
- 组合属性,有其他属性计算而来(get)
- 组合属性可以影响其他属性(set),this代表实例
- 属性覆盖:override
- 方法定义:fun 方法名(){}
- 方法覆盖:override
- 可见性修饰符:设定类本身及其属性,方法,构造器以及接口和对象的对外访问权限,即“可见性”。private:私有,仅当前类可见,最小的可见性。protected:保护,仅子类可见。internal:内部,当前模块内可见。public:公开,默认对外完全可见。
- 嵌套类,与主类关系并不是十分密切,只是一个形式上的合作,主从关系
- 内部类:inner class 类名,通常用于不直接对外的类,为主类服务的。内部类可以访问主类的属性
- 数据类:专用于只保存数据的类,kotlin数据类:data class 类名(属性列表),数据类序列化:数据类.toString(),数据类的克隆:数据类.copy(属性重新赋值)
- 枚举类:有限个类型的枚举,其中的每一个称之为枚举常量(可带初始值),每一个以逗号分隔,定义:enum class 类型{枚举常量(值),枚举常量(值),….,枚举常量n(值)},枚举类也可像普通类一样带构造器。
异常
- 捕获异常try{}catch(e:Exception){},也可以将其赋值给一个变量。
接口
- interface 接口名{//各种属性或方法定义}
- 接口中的方法可以有默认实现,即接口的方法中可以有内容。
泛型
- 一般用于函数的参数类型定义,让函数更通用。
- 定义函数:fun<类型占位符> 函数名(参数名:类型占位符){}
- 泛型约束:<泛型占位符:类型>
其他详情请参考Kotlin官方中文网站:https://www.kotlincn.net/
阅读全文
3 0
- Kotlin学习笔记
- Kotlin 学习笔记-01
- Kotlin学习笔记
- kotlin学习笔记
- Kotlin : 学习笔记一
- Kotlin学习笔记
- Kotlin学习笔记
- Kotlin学习笔记-大纲
- kotlin 学习笔记
- kotlin学习笔记
- kotlin学习笔记1
- kotlin学习笔记2
- kotlin学习笔记
- kotlin学习笔记3
- kotlin学习笔记
- Kotlin 学习笔记 整理
- Kotlin学习笔记
- Kotlin学习笔记
- ZOJ-2317 Nice Patterns Strike Back
- 快速入门shell脚本编写(二)
- Enhanced Deep Residual Networks for Single Image Super-Resolution
- 详解Android studio的构建文件build.gradle
- 面试常考数据结构与算法
- kotlin学习笔记
- Egret游戏通用开发框架
- spring父子容器与读取properties文件
- Spring MVC Flash 属性解决属性丢失
- POJ 3264 (ST表的简单使用)
- Tomcat无法编译
- 多个TOMCAT实例,分端口添加到系统服务
- ecshop 数据库结构和表的字段介绍
- 把一个数组里的组合全部列出