Kotlin 数据类型



  • 数据类型

    在本章中,我们将学习Kotlin编程语言中可用的基本数据类型。
  • 数字

    Kotlin中数字的表示与Java非常相似,但是Kotlin不允许内部转换不同的数据类型。下表列出了不同数字的不同可变长度。
    类型 大小
    Double 64
    Float 32
    Long 64
    Int 32
    Short 16
    Byte 8
    在以下示例中,我们将看到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);
    }
    
    
    输出:
    
    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如何解释字符变量。字符变量不能像数字变量一样声明。可以通过两种方式声明Kotlin变量:一种使用“var”,另一种使用“val”。
    
    fun main(args: Array<String>) {
       val letter: Char    // 定义一个变量
       letter = 'A'        // 赋值给它 
       println("$letter")
    }
    
    
    输出:
    
    A
    
    
  • 布尔型

    布尔像其他编程语言一样非常简单。我们只有两个布尔值-truefalse。在以下示例中,我们将看到Kotlin如何解释布尔值。
    
    fun main(args: Array<String>) {
       val letter: Boolean   // 定义一个变量
       letter = true         // 赋值给它
       println("Your character value is "+"$letter")
    }
    
    
    输出:
    
    Your character value is true
    
    
  • 字符串

    字符串是字符数组。像Java一样,它们本质上是不可变的。Kotlin中有两种可用的字符串-一种称为原始字符串,另一种称为转义字符串。在下面的示例中,我们将使用这些字符串。
    
    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)   
    }
    
    
    输出:
    
    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])
    }
    
    
    输出:
    
    Hey!! I am array Example3
    
    
  • 集合

    集合是数据结构中非常重要的部分,这使工程师易于进行软件开发。Kotlin有两种类型的集合-一种是不可变的集合(列表(List),映射(Map)和集合(Set)不可编辑),另一种是可变的集合(这种类型的集合是可编辑的)。牢记您的应用程序中使用的集合类型非常重要,因为Kotlin系统并不代表它们之间的任何特定差异。
    
    fun main(args: Array<String>) { 
       val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //可变的 List 
       val readOnlyView: List<Int> = numbers                  // 不可变的 list 
       println("my mutable list--"+numbers)        // 打印 "[1, 2, 3]" 
       numbers.add(4) 
       println("my mutable list after addition --"+numbers)        // 打印 "[1, 2, 3, 4]" 
       println(readOnlyView)     
       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 Numbers 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 Numbers of our List----[2, 4]
    1
    My Set Values are[a, b, c]
    
    
  • 范围

    范围是Kotlin的另一个独特特征。与Haskell一样,它提供了一个运算符,可帮助您遍历范围。在内部,它是使用rangeTo()实现的,其运算符形式是(..)。在以下示例中,我们将看到Kotlin如何解释此范围运算符。
    
    fun main(args: Array<String>) {
       val i:Int  = 2
       for (j in 1..4) 
         print(j) // 打印 "1234"
       
       if (i in 1..10) { // 与 1 <= i && i <= 10 等价
         println("we found your number --"+i)
       }
    }
    
    
    输出:
    
    1234we found your number --2