var a: Byte = 2
var b: Short = 2
var c: Int = 2
var d: Long = 2L //长整型由大写字母L标记
var e: Float = 2f //单精度浮点型由小写字母f或大写字符F标记
var f: Double = 2.0
println(" a => $a \n b => $b \n c => $c \n d => $d \n e => $e \n f => $f);
输出结果为:
a => 2
b => 2
c => 2
d => 2
e => 2.0
f => 2.0
2、进制数
二进制数
八进制数(Kotlin不支持)
十进制数
十六进制数
例:
var g = 0x0F //十六进制数
var h = 0b00001011 //二进制数
var k = 123 //十进制数
// ps:Kotlin不支持八进制数
println(" g => $g \n h => $h \n k => $k);
输出结果为:
g => 15
h => 11
k => 123
3、数字类型字面常量的下划线
作用:分割数字进行分组,使数字常量更易读
例:
val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
println("oneMillion => $oneMillion")
println("creditCardNumber => $creditCardNumber")
println("socialSecurityNumber => $socialSecurityNumber")
println("hexBytes => $hexBytes")
println("bytes => $bytes")
/** Shifts this value left by [bits]. */
public infix fun shl(bitCount: Int): Int
/** Shifts this value right by [bits], filling the leftmost bits with copies of the sign bit. */
public infix fun shr(bitCount: Int): Int
/** Shifts this value right by [bits], filling the leftmost bits with zeros. */
public infix fun ushr(bitCount: Int): Int
/** Performs a bitwise AND operation between the two values. */
public infix fun and(other: Int): Int
/** Performs a bitwise OR operation between the two values. */
public infix fun or(other: Int): Int
/** Performs a bitwise XOR operation between the two values. */
public infix fun xor(other: Int): Int
/** Inverts the bits in this value. */
public fun inv(): Int
例:
/*
位运算符
支持序列如下:shl、shr、ushr、and、or、xor、inv
*/
var operaNum: Int = 4
var shlOperaNum = operaNum shl(2)
var shrOperaNum = operaNum shr(2)
var ushrOperaNum = operaNum ushr(2)
var andOperaNum = operaNum and(2)
var orOperaNum = operaNum or(2)
var xorOperaNum = operaNum xor(2)
var invOperaNum = operaNum.inv()
println("shlOperaNum => $shlOperaNum \n " +
"shrOperaNum => $shrOperaNum \n " +
"ushrOperaNum => $ushrOperaNum \n " +
"andOperaNum => $andOperaNum \n " +
"orOperaNum => $orOperaNum \n " +
"xorOperaNum => $xorOperaNum \n " +
"invOperaNum => $invOperaNum")
var isNum: Boolean
isNum = false
println("isNum => $isNum")
输出结果为:
isNum => false
2、逻辑操作符(与Java相同)
' || ' => 逻辑或(或者)
' && ' => 逻辑与(并且)
' ! ' => 逻辑非(取反)
例:
/*
操作运算符
' || ' => 逻辑或(或者)
' && ' => 逻辑与(并且)
' ! ' => 逻辑非(取反)
*/
var a: Boolean = false
var b: Boolean = true
var result: Boolean
/* 逻辑或操作 */
if (a || b){
result = a || b
println("a || b => $result")
}
/* 逻辑与操作 */
if (a && b){
result = a && b
println("a && b => $result")
}
/* 逻辑非操作 */
result = !a
println("!a => $result")
result = !b
println("!b => $result")
输出结果为:
isNum => false
a || b => true
!a => true
!b => false
val str3: String = """
> I`m like Kotlin .
> I`m like Java .
> I`m like Android .
> I`m like React-Native.
""".trimMargin(">")
println(str3)
输出结果为:
I`m like Kotlin .
I`m like Java .
I`m like Android .
I`m like React-Native.
3、字符串模板
使用字符串模板的符号为($)。在$符号后面加上变量名或大括号中的表达式
例:
val text1: String = "我来了!"
var text2: String = "$text1 kotlin"
var text3: String = "$text2 ${text1.length} 哈哈!!!!"
println(text1)
println(text2)
println(text3)
输出结果为:
我来了!
我来了! kotlin
我来了! kotlin 4 哈哈!!!!
五、数组型(Array)
Kotlin中数组由Array<T>表示,可以去看看源码实现,里面就几个方法
创建数组的3个函数
arrayOf()
arrayOfNulls()
工厂函数(Array())
1、arrayOf()
创建一个数组,参数是一个可变参数的泛型对象
例:
var arr1 = arrayOf(1,2,3,4,5) //等价于[1,2,3,4,5]
for (v in arr1){
print(v)
print("\t")
}
var arr2 = arrayOf("0","2","3",'a',32.3f)
for (v in arr2){
print(v)
print("\t")
}
输出结果为:
1 2 3 4 5
0 2 3 a 32.3
2、arrayOfNulls()
用于创建一个指定数据类型且可以为空元素的给定元素个数的数组
例:
var arr3 = arrayOfNulls<Int>(3)
//如若不予数组赋值则arr3[0]、arr3[1]、arr3[2]皆为null
for(v in arr3){
print(v)
print("\t")
}
println()
//为数组arr3赋值
arr3[0] = 10
arr3[1] = 20
arr3[2] = 30
for(v in arr3){
print(v)
print("\t")
}
输出结果为:
null null null
10 20 30
3、工厂函数
使用一个工厂函数Array(),它使用数组大小和返回给定其索引的每个数组元素的初始值的函数。
Array() => 第一个参数表示数组元素的个数,第二个参数则为使用其元素下标组成的表达式
例:
var arr4 = Array(5,{index -> (index * 2).toString() })
for (v in arr4){
print(v)
print("\t")
}
var intArr: IntArray = intArrayOf(1,2,3,4,5)
for (number in intArr){
print(number)
print("\t")
}
println()
var charArr: CharArray = charArrayOf('a','1','b','c','3','d')
for (char in charArr){
print(char)
print("\t")
}
println()
var longArr: LongArray = longArrayOf(12L,1254L,123L,111L)
for (long in longArr){
print(long)
print("\t")
}