在本章中,无涯教程将学习Kotlin编程语言中可用的基本数据类型。
Kotlin中Number数字的表示与Java非常相似,但是Kotlin不允许内部转换不同的数据类型。下表列出了不同数字的不同可变长度。
类型 | 宽度(大小) | 数据范围 |
---|---|---|
Byte | 8位 | -128至127 |
Short | 16位 | -32768至32767 |
Int | 32位 | -2,147,483,648至2,147,483,647 |
Long | 64位 | -9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807 |
Float | 32位 | 1.40129846432481707E-45至3.40282346638528860e + 38 |
Double | 64位 | 4.940656458412465442-324至1.79769313486231570e + 308 |
在以下示例中,无涯教程将看到Kotlin如何使用不同的数据类型。
fun main(args: Array<String>) { val a: Int = 10000 val d: Double = 100.00 val f: Float = 100.00f val l: Long = 1000000004 val s: Short = 10 val b: Byte = 1 println("Your Int Value is "+a); println("Your Double Value is "+d); println("Your Float Value is "+f); println("Your Long Value is "+l); println("Your Short Value is "+s); println("Your Byte Value is "+b); }
当您在编码环境中运行以上代码时,它将在Web控制台中生成以下输出。
Your Int Value is 10000 Your Double Value is 100.0 Your Float Value is 100.0 Your Long Value is 1000000004 Your Short Value is 10 Your Byte Value is 1
Kotlin使用 char 表示字符,字符应使用单引号声明,如'c' ,字符可以通过两种方式声明Kotlin变量 - 一种使用" var" ,另一种使用" val" 。
数据类型 | 宽度(大小) | 数据范围 |
---|---|---|
char | 4位 | -128至127 |
fun main(args: Array<String>) { val letter: Char //定义一个变量 letter = 'A' //为其赋值 println("$letter") }
上面的代码将在浏览器输出窗口中产生以下输出。
A
使用type boolean 表示布尔数据。它包含true或false的值。
数据类型 | 宽度(大小) | 数据值 |
---|---|---|
boolean | 1位 | true或false |
fun main(args: Array<String>) { val letter: Boolean //定义一个变量 letter = true //赋值 println("Your character value is "+"$letter") }
上面的代码将在浏览器中产生以下输出。
Your character value is true
字符串是字符数组,像Java一样,它们本质上是不可变的。Kotlin中有两种可用的字符串 - 一种称为原始字符串(raw String),另一种称为转义字符串(escaped String)。
fun main(args: Array<String>) { var rawString :String = "I am Raw String!" val escapedString : String = "I am escaped String!\n" println("Hello!"+escapedString) println("Hey!!"+rawString) }
上面的转义字符串示例允许在第一个print语句之后提供额外的行空间。
Hello!I am escaped String! Hey!!I am Raw String!
数组是同类数据的集合,像Java一样,Kotlin支持不同数据类型的数组。
fun main(args: Array<String>) { val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5) println("Hey!! I am array Example"+numbers[2]) }
上面的代码产生以下输出。在这里,无涯教程正在搜索第二个索引,其值为" 3"。
Hey!! I am array Example3
Kotlin有两种类型的集合 - 一种是不可变的集合(immutable),另一种是可变的集合(mutable)。
fun main(args: Array<String>) { val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //可变列表 val readOnlyView: List<Int> = numbers //不可变列表 println("my mutable list--"+numbers) //prints "[1, 2, 3]" numbers.add(4) println("my mutable list after addition --"+numbers) //prints "[1, 2, 3, 4]" println(readOnlyView) readOnlyView.clear() //⇒ 不编译 //给出错误 }
上面的代码将在浏览器中产生以下输出。当无涯教程尝试清除集合的可变列表时,它给出了一个错误。
main.kt:9:18: error: unresolved reference: clear readOnlyView.clear() //-> 不编译 ^
在集合中,Kotlin提供了一些有用的方法,如 first(),last(),filter()等。此外,Kotlin在实现集合时遵循Java之类的相同结构。您可以自由实现您选择的任何集合,如Map和Set。
在以下示例中,无涯教程使用不同的内置方法实现了Map和Set。
fun main(args: Array<String>) { val items = listOf(1, 2, 3, 4) println("First Element of our list----"+items.first()) println("Last Element of our list----"+items.last()) println("Even number of our List----"+items. filter { it % 2 = = 0 }) //returns [2, 4] val readWriteMap = hashMapOf("foo" to 1, "bar" to 2) println(readWriteMap["foo"]) //prints "1" val strings = hashSetOf("a", "b", "c", "c") println("My Set Values are"+strings) }
上面的代码在浏览器中产生以下输出。
First Element of our list----1 Last Element of our list----4 Even number of our List----[2, 4] 1 My Set Values are[a, b, c]
Ranges是Kotlin的另一个独特特征,与Haskell一样,它提供了一个运算符,可帮助您遍历范围。它是通过rangeTo()实现的,其运算符形式为(..)。
fun main(args: Array<String>) { val i:Int = 2 for (j in 1..4) print(j) //prints "1234" if (i in 1..10) { //equivalent of 1 <=i && i <=10 println("we found your number --"+i) } }
上面的代码在浏览器中产生以下输出。
1234we found your number --2
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)