您当前的位置: 首页 >  kotlin

Kevin-Dev

暂无认证

  • 2浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Kotlin -- 知识点】数据类型

Kevin-Dev 发布时间:2017-08-04 15:28:31 ,浏览量:2

文章目录
    • 一、数值类型
      • 1. 基本数据类型
      • 2. 进制数
      • 3. 数字类型字面常量的下划线
      • 4. 装箱与拆箱
      • 5. 转换
      • 6. 位运算符
    • 二、布尔类型(Boolean)
      • 1. 关键字
      • 2. 逻辑操作符
    • 三、字符型(Char)
      • 1. 关键字
      • 2. 显示转换为其他类型
      • 3. 字符转义
    • 四、字符串类型(String)
    • 五、四则运算
      • 1. 除法 / :
      • 2. 乘法 * :
      • 3. 加法 + :
      • 4. 减法 - :
      • 5. 取余 % :
    • 六、数组型(Array)
      • 1. arrayOf()
      • 2. arrayOfNulls()
      • 3. 工厂函数
      • 4. 原始类型数组

一、数值类型 1. 基本数据类型

Kotlin 整型数据类型包括 Byte、Short、Int、Long、Float、Double 08.png Kotlin 中提供了 FloatDouble 两种类型来分别表示单精度和双精度的浮点数类型。 09.png 提示:如果需要保留小数点后面六位以内我们就用 Float ;如果需要保留小数点后面六位以上我们就要用 Double

例子:

fun main() {
    numberType()
}

private fun numberType() {
    val a: Byte = 2
    val b: Short = 2
    val c: Int = 2
    val d: Long = 2L         //长整型由大写字母L标记
    val e: Float = 2.0f       //单精度浮点型由小写字母f或大写字符F标记
    val f: Double = 2.0

    println(" a => $a \n b => $b \n c => $c \n d => $d \n e => $e \n f => $f ")
}

输出结果: 在这里插入图片描述

2. 进制数

例子:

fun main() {
//    numberType()
    baseNumber()
}

private fun baseNumber() {
    // ps:Kotlin不支持八进制数
    var g = 0x0F            //十六进制数
    var h = 0b00001011      //二进制数
    var k = 123             //十进制数

    println(" g => $g \n h => $h \n k => $k")
}

输出结果: 在这里插入图片描述

3. 数字类型字面常量的下划线

作用:分割数字进行分组,使数字常量更易读

例子:

fun main() {
    baseLineNumber()
}

private fun baseLineNumber() {
    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")
}

输出结果: 在这里插入图片描述

4. 装箱与拆箱

在 Kotlin 中,存在数字的装箱,但是不存在拆箱。因为 Kotlin 是没有基本数据类型的,Kotlin 是万般皆对象的原则。故不存在和 Java 中的类似 int 是数据类型,Integer 是整型的引用类型。

例子:

fun main() {
    box()
}

private fun box() {
    val numValue: Int = 127
    //装箱的过程
    val numValueBox : Int? = numValue
    println("装箱后: numValueBox => $numValueBox")
}

输出结果: 在这里插入图片描述

5. 转换
  • 显示转换

11.png

例子:

	fun main() {
        displayTrans()
    }

    private fun displayTrans() {
        val numA: Int = 97
        println(numA.toByte())
        println(numA.toShort())
        println(numA.toInt())
        println(numA.toFloat())
        println(numA.toDouble())
        println(numA.toLong())
        println(numA.toChar())
        println(numA.toString())
    }

输出结果: 在这里插入图片描述

  • 隐式转换

例子:

fun main() {
    implicitTrans()
}

private fun implicitTrans() {
    val num = 30L + 12
    print(num)
}

输出结果:

42

6. 位运算符

Kotlin 中的位运算和 Java 不同,是没有特殊符号来表示,可以采用中缀函数方式调用具名函数。

  • shl(bits) -有符号左移 【shl 是 Shift Logical Left 的缩写】
  • shr(bits) - 有符号右移
  • ushr(bits) - 无符号右移
  • and(bits) - 位与
  • or(bits) - 位或
  • inv(bits) - 位非
  • xor(bits) - 位异或

例子:

fun main() {
    bitOperation()
}

private fun bitOperation() {
    val operaNum: Int = 4

    val shlOperaNum = operaNum shl(2)
    val shrOperaNum = operaNum shr(2)
    val ushrOperaNum = operaNum ushr(2)
    val andOperaNum = operaNum and(2)
    val orOperaNum = operaNum or(2)
    val xorOperaNum = operaNum xor(2)
    val invOperaNum = operaNum.inv()

    println("shlOperaNum => $shlOperaNum \n " +
            "shrOperaNum => $shrOperaNum \n " +
            "ushrOperaNum => $ushrOperaNum \n " +
            "andOperaNum => $andOperaNum \n " +
            "orOperaNum => $orOperaNum \n " +
            "xorOperaNum => $xorOperaNum \n " +
            "invOperaNum => $invOperaNum")
}

输出结果: 在这里插入图片描述

二、布尔类型(Boolean) 1. 关键字

Boolean 关键字表示布尔类型,并且其值有 truefalse

例子:

fun main() {
    booleanType()
}

private fun booleanType(){
    /*
        定义:
     */
    val isNum: Boolean = false
    println("isNum => $isNum")
}

输出结果为:

isNum => false

2. 逻辑操作符

例子:

fun main() {
    booleanType()
}

private fun booleanType(){
    /*
        操作运算符
        ' || ' => 逻辑或(或者)
        ' && ' => 逻辑与(并且)
        ' ! ' => 逻辑非(取反)
     */
    val a: Boolean = false
    val 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")

}

输出结果为:

a || b => true !a => true !b => false

三、字符型(Char) 1. 关键字

Char为表示字符型,字符变量用单引号(‘ ’)表示。并且不能直接视为数字,不过可以显式转换为数字。 例子:

fun main() {
    charType()
}

/**
 * 字符型
 */
private fun charType(){
    //字符由Char类型表示,它不能直接同视为数字,不过可以显示转换
    val char1: Char = 'a'
    //char1 = 1        //=> 这句代码会直接出错
    println("char1 => $char1")
    
}

输出结果:

char1 => a

2. 显示转换为其他类型

例子:字符型的变量不仅可以转换为数字,同时也可转换为其他类型

fun main() {
    charType()
}

/**
 * 字符型
 */
private fun charType(){
    val char1: Char = 'a'

    val val1 = char1.code.toByte()
    val val2 = char1.code.toInt()
    val val3 = char1.toString()
    val val4 = char1.code.toFloat()
    val val5 = char1.code.toShort()
    println("val1 => $val1 \n val2 => $val2 \n val3 => $val3 \n val4 => $val4 \n val5 => $val5")

}

输出结果:

var1 => 97 var2 => 97 var3 => a var4 => 97.0 var5 => 97

例子:除了可以转换类型外,当变量为英文字母时还支持大小写转换。

fun main() {
    charType()
}

/**
 * 字符型
 */
private fun charType(){
    val charA: Char = 'a'
    val charB: Char = 'B'
    val charNum: Char = '1'
    var result: Char

    // 转换为大写
    result = charA.toUpperCase()
    println("result => $result")

    // 转换为小写
    result = charB.toLowerCase()
    println("result => $result")

    //当字符变量不为英文字母时,转换无效
    result = charNum.toLowerCase()
    println("result => $result")

}

输出结果:

result => A result => b result => 1

3. 字符转义
  • \t => 表示制表符
  • \n => 表示换行符
  • \b => 表示退格键(键盘上的Back建)
  • \r => 表示键盘上的Enter键
  • \ => 表示反斜杠
  • ’ => 表示单引号
  • " => 表示双引号
  • $ => 表示美元符号,如果不转义在kotlin中就表示变量的引用了
  • 其他的任何字符请使用Unicode转义序列语法。例:‘\uFF00’
四、字符串类型(String)

String 表示字符串类型。其是不可变的。所以字符串的元素可以通过索引操作的字符:str[index]来访问。可以使用for循环迭代字符串:

例子:

fun main() {
    stringType()
}

/**
 * 字符串类型
 */
private fun stringType(){
    // 1. 字符串由String类型表示。并且其是不可变的。字符串的元素可以通过索引操作的字符:s[i]来访问。可以使用for循环迭代字符串:
    val str: String = "kotlin"
    println("str => $str")

    //迭代
    for (s in str){
        print(s)
        print("\t")
    }
    print("\n")

    /*
        2. 字符串字面量,在kotlin中有两种类型:
            - 包含转义字符的字符串 转义包括('\t','\n'等)
            - 包含任意字符的字符串 由三重引号包括(""" .... """)
     */
    var str1: String = "hello\t\tkotlin"
    println(str1)
    str1 = "hello kotlin"
    println(str1)

    val str2 = """ fun main(args: Array){
        println("我是三重引号引用的字符串,我可以包含任意字符")
        } """
    println(str2)

    //可以使用trimMargin()函数删除前导空格 默认使用符号('|')作边距前缀,当然也可以使用其他字符。例:('>','            
关注
打赏
1658837700
查看更多评论
0.0413s