资料介绍
Kotlin语言在Android Studio中应用前景广阔,本文是编者在应用开发中查找资料的总结,内容主要来自网络,读者可以作为手册来查找并复制有用的内容到自己的应用当中。 Kotlin语言部分讲述了Kotlin支持的基本数据类型的定义和字节数,集合类型:List、Map和Set类,可变长度和不可变长度集合类型的定义,结合类型的成员和方法,字符串类型详解,类的定义,枚举类、数据类和密封类。
Kotlin实战(一)
Kotlin 基本数据类型、变量、常量。变量定义修饰符两个: val、var。val表示该变量可以初始化一次,以后不能再赋值。var表示该变量可以随时赋值。
一、简介
Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。
Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
Kotlin已正式成为Android官方支持开发语言(Google IO 2017宣布)。
分享关于kotlin的几个网站
kotlin官方网站:https://kotlinlang.org/
kotlin官方网站(中文翻译版):https://www.kotlincn.net/
kotlin在线工具网站(可执行kotlin代码):https://try.kotlinlang.org/
二、Kotlin数据类型
2.1 kotlin的基本数值类型
包括Byte,Short,Int,Long,Float,Double等。与java有差别的是字符不属于数值类型,而是一个独立的数据类型。其内存大小则分别是Byte 8位,Short 16位,Int 32位,Long 64位,Float 32位,Double 64位,与Java基本没有差别。
2.2字面常量
下面是所有类型的字面常量:
十进制:123
长整型以大写的L结尾:123L
16进制以0x开头:0x0F
2进制以0b开头:0b00001011
***注意:kotlin不支持8进制
kotlin同时也支持传统符号表示的浮点数值:
Double默认写法:123.5,123.5e10
Float使用f或者F后缀:123.5f
可以使用下划线使数字常量更易读:
val oneMillion = 1_000_000
val creditCarNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = ob11010000_010100_11100
2.3比较两个数字
kotlin中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,kotlin帮你封装了一个对象。这样确保了不会出现空指针。数字类型也一样。所有在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。
* === :表示比较对象地址。
*==:表示比较两个值的大小。
2.4类型转换
由于不同的表示方式,较小类型并不是较大类型的子类型,较小的类型不能隐式的转换为较大的类型。这意味着在不进行显示转换的情况我们不能把byte型值赋给一个int变量。
val b: Byte = 1 //ok ,字面值是静态检测的
val i : Int = b //错误
//正确做法
val i :Int = b.toInt()
由此引出的各种数据类型转换方法。
toByte() : Byte
toShort():
toInt():
toLong():
toFloat():
toDouble():
toChar():
但是有些情况下也是可以使用自动类型转换的,前提是可以根据上下文环境推断出正确的数据类型而且数学操作符会做相应的重载。例如:
val 1 = 1L + 3 //Long + Int =》 Long
2.5位操作符
对于Int和Long类型,还有一系列位操作符可以使用,分别是:
shl(bits) - 左移位(Java 《《)
shr(bits) -右移位(Java 》》)
ushr(bits) -无符号右移位(Java 》》》)
and(bits) -与
or(bits) -或
xor(bits) -异或
inv() -反向
2.6字符
和Java不同的是,kotlin 中Char不能和数字操作,Char必须是是单引号‘包含起来的,比如普通字符’0‘,’a‘。
fun check(c : Char) {
if (c == 1) { //错误 类型不兼容
}
}
字符字面值用单引号括起来:’1‘。特殊字符可以用反斜杠转义。
支持以下转义序列:\t,\b,\n,\r,\’,\“,\\和\$。编码其他字符要用Unicode转义序列语法:”\uFF00“。
当需要可空引用时,像数字,字符会被装箱。装箱操作不会保留同一性。
2.7布尔
布尔用Boolean类型表示,它有两个值:true和false。
若需要可空引用会被装箱。
内置的布尔运算有:
|| -短路逻辑或
&& - 短路逻辑与
! - 短路逻辑非
2.8 数组
数组用类Array实现,并且还有一个size属性及get和set方法。
由于使用[]重载了get和set方法。所以我们可以通过下标很方便的获取或者设置数组对应位置的值。
数组的创建两种方式:一种是使用函数arrayOf();另外一种是使用工厂函数。如下所示我们分别是两种方式创建了两个数组:
fun main(args: Array《String》){
val a=arrayOf(1,2,3) //定义数组{1,2,3}
val b=Array(3,{i-》2*i}) //定义数组{0,2,4}
println(a[0]) //输出 1
println(b[0]) //输出 0
}
注意:[] 运算符代表调用成员函数get()和set()。
注意:与Java不同的是,kotlin中数组是不型变的。(invariant)。
除此之外还有 ByteArray,ShortArray,IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样。
2.9字符串
和Java一样,String是不可变的。方括号[]语法可以很方便的获取字符串中的某个字符,也可以通过for循环来遍历:
fun main(args: Array《String》){
val str=”asdfghjkl”
for(c in str){
print(c+”\t”)
}
}
kotlin支持三个引号‘’‘ ’‘’括起来的字符串,支持多行字符串比如:
fun main(args:Array《String》){
val str=”””
白日依山近,
黄河入海流。
欲穷千里目,
更上一层楼。
“””
print(str)
}
当然也可以通过.trimMargin()删除多余的空白。
- HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题 应用笔记
- github上的pytorch学习资料详细说明 6次下载
- Xilinx的时序设计与约束资料详细说明 34次下载
- 时序分析的优化策略详细说明 17次下载
- 时序分析的优化策略详细说明 19次下载
- Python的知识点总结详细说明 14次下载
- Android的历史版本详细说明 0次下载
- 如何使用Python绘制PDF文件教程详细说明 12次下载
- AD20的6层两片DDR高速板学习笔记详细说明 0次下载
- 西门子PLC的数字指令教程详细说明 32次下载
- 西门子PLC位指令的教程详细说明 24次下载
- Java Script的编码规范详细说明 7次下载
- 无线路由器密码破解Beini破解wpa实战教程详细说明 13次下载
- NET经常使用的DbHelperSQL详细说明 6次下载
- Matlab图形绘制经典案例详细说明 7次下载
- DESAT外围电路设计的应用笔记 9160次阅读
- 由Java改为 Kotlin过程中遇到的坑 680次阅读
- AN-621: AD9832/AD9835的编程 1227次阅读
- MAX32570非接触式PCD应用笔记 1002次阅读
- 重新分配FlexRAM的方法 1528次阅读
- PIC系列单片机程序设计基础知识详细说明 4303次阅读
- C语言和C++的特点与用法详细说明 4216次阅读
- FPGA的入门基础知识详细说明 9211次阅读
- 使用AT89S51单片机制作红外遥控器的资料和源代码详细说明 5863次阅读
- 常用稳压二极管的参数表格详细说明 1.3w次阅读
- 电气电缆的最全常用手册详细说明 8632次阅读
- 硬件工程师必备的113条硬件应用笔记 7048次阅读
- 接收卡升级的详细说明概述图文详解 2.3w次阅读
- 基于AD9854产生MSK调制信号详细说明 4727次阅读
- CAD实用笔记 6496次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多