学习kotlin第五天_kotlin基本类型
来源:互联网 发布:最靠谱网络兼职平台 编辑:程序博客网 时间:2024/06/05 15:45
今天继续跟着kotlin官方文档踩坑,还是那句话,仅为记录我的学习过程,不喜勿喷。
今天终于不像前面那么乱了。。。今天学习了kotlin的基本类型,和java有点像但又有不少不同之处。这些文章都打着android的标签,还不知道啥子时候才正式开始android呢,工欲善其事必先利其器,不急,慢慢来。
坑1、kotlin中数值没有隐式转换,如int型不能自动转换为long类型,需要调用toLong()进行转换,字符Char类型不能之间当作数字,可以通过toInt()显示地转为Unicode码。;kotlin中的数值类型和java中类似。
类型
位数
类型
位数
Double
64
Int
32
Float
32
Short
16
Long
64
Byte
8
特殊地,算数运算符有重载进行转换
funmain(args: Array<String>) {
vals:Int =4
vall :Long=1L+ s// Long + Int => Long
}
坑2、十进制的Long类型以L结尾,float类型以F或f结尾,支持double类型的科学记数法。十六进制以0X开头,二进制以0b开头。不支持八进制。
坑3、可以在数字常量中使用下划线,晕,我试了下,数值变量也是可以的嘛。
valoneMillion =1_000_000
valcreditCardNumber =1234_5678_9012_3456L
valsocialSecurityNumber =999_99_9999L
valhexBytes =0xFF_EC_DE_5E
valbytes =0b11010010_01101001_10010100_10010010
坑4、kotlin中支持严格比较“===”。即同时比较值与类型。
funmain(args: Array<String>) {
vala: Int =10000
println(a === a) // 输出“true”
valboxedA: Int? = a
valanotherBoxedA: Int? = a
println(boxedA === anotherBoxedA) // 输出“false”
println(boxedA == anotherBoxedA) // 输出“true”
}
坑5、没有位运算符,使用对应的关键字进行运算(只用于Int和Long)。
shl(bits)
有符号左移(Java的<<)
shr(bits)
有符号右移(Java的>>)
ushr(bits)
无符号右移(Java的>>>)
and(bits)
位与
or(bits)
位或
xor(bits)
位异或
inv()
位非
坑6、布尔用Boolean类型表示,也有内置运算||、&&、!。几乎和java一样,只不过首字母大写了而已。
坑7、数组用Library.kt下的arrayof()、arrayOfNulls()创建,也可以用Array.kt下的构造函数public inline constructor(size: Int, init: (Int) ->T)创建。
funmain(args: Array<String>) {
valasc =arrayOf(0,1,2)
for( ainasc)
println(a)
valasc2 =Array(5,{i->(i*i).toString()})
for( ainasc2)
println(a)
valasc3=arrayOfNulls<Int>(3)
for( ainasc3)
println(a)
}
此外ByteArray 、ShortArray 、 IntArray等也可以表示对应数组,有同样的方法和属性集,但与Array没有继承关系
funmain(args: Array<String>) {
valx: IntArray =intArrayOf(1,2,3)
for(vinx)
println(v)
}
坑8、kotlin中字符串为String类型,可以用for循环直接迭代,而java中需调用toCharArray方法转换
funmain(args: Array<String>) {
valstr: String ="zxy"
for(cinstr) {
if(cisChar) {
println(c)
}
}
}
public static voidmain(String[] args) {
String a ="zxy";
for(charc : a.toCharArray()) {
System.out.println(c);
}
}
坑9、kotlin字符串支持转义字符,类似java。kotlin支持三引号表示原生字符串,它不支持转义字符。trimMargin()可以去除前导空格,“|”为边界前缀,在行首会被trimMargin()方法舍去,可以改成其它字符作为边界前缀,如trimMargin(">")。
funmain(args: Array<String>) {
vala ="s\ts"
valb ="""a\t
|hello kotlin."""
valc ="""a\t
|hello kotlin.""".trimMargin()
println(a)//\t制表符转义
println(b)//原生字符串,保留\t、换行、前导空格、边界前缀|
println(c)//原生字符串,保留\t、换行,去除边界前缀|、前导空格
}
此外,原生字符串和转义字符串内都支持模板。
今天早上就到此为止,待会儿如果我还有时间就再来一篇,虽然写得不怎样,但也意味着有更大的成长空间。
- 学习kotlin第五天_kotlin基本类型
- 学习JAVA第五天!数据的基本类型,数组和函数。
- Kotlin学习笔记——基本类型
- kotlin 官方学习教程之基本类型
- Kotlin学习笔记一基本类型
- Kotlin学习(5):基本类型
- Kotlin学习-基本类型(三)
- Kotlin编码规范和基本类型--kotlin官方文档学习
- Kotlin 学习笔记(一) 基本类型和基本语法
- C语言学习第五天(函数、存储类型)
- JS学习第五天----类型,值,和变量
- Struts2学习第五天:9种Result类型
- Kotlin的基本类型
- Kotlin基本类型
- Kotlin 基本类型
- Kotlin 基本类型
- kotlin---基本类型
- Kotlin -- 基本类型
- Day2并发
- 单线程和多线程是什么意思 ?
- BZOJ1588 Treap浅谈+裸题
- Visual Studio—— IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds
- Loader,AsyncTaskLoader,CursorLoader与LoaderManager
- 学习kotlin第五天_kotlin基本类型
- Java中.class,class.forName(),getClass()的区别
- C#怎么怎么添加一个现有窗体到工程中
- Pyhton-Requests之接口测试
- webview调用android代码
- sass学习笔记
- TF/04_Support_Vector_Machines/04_Working_with_Kernels
- 大数据应用
- mtk lcd屏 调试步骤详解