共计 3560 个字符,预计需要花费 9 分钟才能阅读完成。
一、根本类型
1.1、与 Java 比照
<font face= 黑体 > 咱们来看一下 Kotlin 的根本类型与 Java 的区别,具体如下表所示:
Kotlin | Java | |
---|---|---|
字节 | Byte | byte/Byte |
整型 | Int & Long | int/Integer & long/Long |
浮点型 | Float & Double | float/Float & double/Double |
字符 | Char | char/Character |
字符串 | String | String |
1.2、申明变量
1.2.1:Kotlin 申明变量
<font face= 黑体 >Kotlin 申明变量的具体模式如下所示:
1.2.2:Kotlin 申明变量与 Java 比照
int a = 2;
final String b = "Hello Java";
var a: Int = 2
val b: String = "Hello Kotlin"
<font face= 黑体 > 编译器是能够类型推导的,所以上述 Koltin 代码也能够简化成以下这样:
var a = 2
val b = "Hello Kotlin"
1.2.3:易混同的 Long 类型标记
// Java
long a = 12345678910l; // 小写 l ok but not good
long b = 12345678910L; // 大写 L ok
// Kotin
val a = 12345678910l; // 小写 l compile error(编译报错)
val b = 12345678910L; // 大写 L ok
1.2.4:Kotlin 的数值类型转换
<font face= 黑体 > 在 Java 中是反对隐式转换的,然而在 Kotlin 中隐式转换是不被容许的。
int e = 10;
long f = e; // 隐式转换
<font face= 黑体 >Kotlin 中这样写是谬误的,如下:
val e: Int = 10
val f: Long = e // 是谬误的
<font face= 黑体 >Kotlin 中正确的写法如下:
val e: Int = 10
val f: Long = e.toLong() // ok
1.3、字符串模板 $
val j = "I❤️China"
println("Value of String'j'is: $j")
println("Length of String'j'is: ${j.length}")
1.4、字符串比拟
<font face= 黑体 > 在 Java 中 == 比拟的是援用而不是内容,equals() 才是比拟内容的。然而在 Kotlin 中 == 比拟的是内容,=== 比拟的是援用。
val k = "Today is a sunny day."
val m = String("Today is a sunny day.".toCharArray())
println(k === m) // compare references.
println(k == m) // compare values.
1.5、Kotlin 根本类型小结
二、数组
2.1、与 Java 比照
<font face= 黑体 > 咱们来看一下 Kotlin 的数组与 Java 的区别,具体如下表所示:(相似的还有 Float、Double …)
Kotlin | Java | |
---|---|---|
整型 | IntArray | int[] |
整型装箱 | Array<Int<Int>> | Integer[] |
字符 | CharArray | char[] |
字符装箱 | Array<Char<Int>> | Character[] |
字符串 | Array<<String<Int>>> | String[] |
2.2、数组的创立
Java:
int[] c = new int[]{1, 2, 3, 4, 5};
Kotlin:
val c0 = intArrayOf(1, 2, 3, 4, 5)
val c1 = IntArray(5) {it + 1}
2.3、数组的打印
<font face= 黑体 > 数组的打印能够利用 contentToString() 办法。
val c0 = intArrayOf(1, 2, 3, 4, 5)
println(c0.contentToString())
<font face= 黑体 > 打印后果如下所示:
2.4、数组的长度
Java:
int[] c = new int[]{1, 2, 3, 4, 5};
System.out.println(a.length);
Kotlin:
val a = IntArray(5)
println(a.size)
2.5、数组的读写
Java:
String[] d = new String[]{"Hello", "World"};
d[1] = "Java";
System.out.println(d[0] + "," + d[1]);
Kotlin:
val d = arrayOf("Hello", "World")
d[1] = "Kotlin"
println("${d[0]}, ${d[1]}")
2.6、数组的遍历
Java:
float[] e = new float[]{1, 3, 5, 7};
for (float element : e) {System.out.println(element);
}
Kotlin:
val e = floatArrayOf(1f, 3f, 5f, 7f)
for (element in e) {println(element)
}
val e = floatArrayOf(1f, 3f, 5f, 7f)
e.forEach { element ->
println(element)
}
e.forEach {println(it)
}
2.7、判断元素是否在数组外面
Java:
for (float element : e) {if(element == 1f){System.out.println("1f exists in variable'e'");![在这里插入图片形容](https://img-blog.csdnimg.cn/20210103151810961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ3ODc4MA==,size_16,color_FFFFFF,t_70#pic_center)
break;
}
}
Kotlin:
if (1f in e) {println("1f exists in variable'e'")
}
2.8、Kotlin 数组小结
三、区间
<font face= 黑体 > 在 Java 中是没有区间这个概念的,区间是 Kotlin 特有的。
3.1、区间的创立
闭区间:
val intRange = 1..10 // [1, 10]
val charRange = 'a'..'z'
val longRange = 1L..100L
开区间:(左闭右开)
val intRangeExclusive = 1 until 10 // [1, 10)
val charRangeExclusive = 'a' until 'z'
val longRangeExclusive = 1L until 100L
倒序闭区间:
val intRangeReverse = 10 downTo 1 // [10, 9, ... , 1]
val charRangeReverse = 'z' downTo 'a'
val longRangeReverse = 100L downTo 1L
步长区间:
val intRangeWithStep = 1..10 step 2
val charRangeWithStep = 'a'..'z' step 2
val longRangeWithStep = 1L..100L step 5
3.2、区间的打印
<font face= 黑体 > 对于可数的区间如整型区间能够用 joinToString() 办法来打印,然而对于不可数的区间如浮点型区间是无奈打印的。
val intRange = 1..10 // [1, 10]
val floatRange = 1f .. 2f // [1, 1.1225251564165, 1.7,2] 不可数的
println(intRange.joinToString()) // 能够打印出具体的值
println(floatRange.toString()) // 打印进去的是形容
3.3、区间的遍历
for (element in intRange) {println(element)
}
intRange.forEach {println(it)
}
3.4、区间的蕴含关系
if (12 !in intRange) {println("12 not in range'intRange'")
}
3.5、区间的利用
val array = intArrayOf(1, 3, 5, 7)
for (i in 0 until array.size) {println(array[i])
}
// 这个遍历办法等同于下面的
for(i in array.indices){println(array[i])
}
3.6、Kotlin 区间小结
四、小结
<font face= 黑体 > 本篇博客次要讲了 Kotlin 内置类型中的 根本类型 、 数组 和区间 ,下一节咱们讲 汇合框架 、 函数。
五、源码
源码已上传至 github,有须要能够间接下载。