Kotlin学习笔记(二)基本数据类型

来源:互联网 发布:mac movist 下载 编辑:程序博客网 时间:2024/05/22 11:47

Kotlin中常量和变量的定义格式:

  • val相当于java中的final关键字,表示该变量是一个常亮,不可修改(类型的声明可以不写)
  • var表示一个变量,可以被修改
val 常量名:变量类型 = valuevar 变量名:变量类型 = value

(1)Boolean类型


fun main(args: Array<String>) {    val sex:Boolean = true    var right:Boolean = false    //编译报错,val修饰的值是常亮,不能被修改//    flag = false;    right = true;    println(sex) //true    println(right)  //true}

(2)Number类型


  • Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型,下图是各种数值类型所占用位数,与Java相同

这里写图片描述

  • 以下是基本数值类型的简单练习,注意以下几点
    • 支持 0x16进制 和 0b二进制 的数值
    • val e:Int = 123_456 //下划线纯粹是为了分割数字,方便易读
    • 整数默认Int类型,小数默认Double类型
/*** Int类型 4*/val a:Int = 12val b:Int = 0xff //255val c:Int = 0b00000011val e:Int = 123_456 //下划线纯粹是为了分割数字,方便易读val maxInt:Int = Int.MAX_VALUE //2.147483647E9val minInt:Int = Int.MIN_VALUE //-2.147483648E9println(Math.pow(2.0,31.0)-1) //2.147483647E9println(-Math.pow(2.0,31.0)) //-2.147483648E9/*** Long类型 8*/val d:Long = 123Lval maxLong:Long = Long.MAX_VALUEval minLong:Long = Long.MIN_VALUE/*** Float类型 4*/val f1:Float = 2.0fval f2:Float = 1e3f //表示10^3val fMax:Float = Float.MAX_VALUEval fMin:Float = Float.MIN_VALUEprintln(0.0F/0.0F) //NaNprintln(0.0F/0.0F == Float.NaN) //fasle/*** Double类型 8*/val d1:Double = 3.0 //小数默认为Double/*** Byte 1*/var b1:Byte = Byte.MAX_VALUE //127var b2:Byte = Byte.MIN_VALUE //-128
  • 数值类型不支持自动类型转换(将小类型自动转换成大类型)
    val a:Int = 123    //编译错误 4字节的Int类型a不能赋值给8字节的Long类型b//    val b:Long = a    //强制转换    val b:Long = a.toLong()
  • 每种数据类型都有以下这几种强转的方法
toByte(): BytetoShort(): ShorttoInt(): InttoLong(): LongtoFloat(): FloattoDouble(): DoubletoChar(): Char
  • 对于Int和Long类型,还有一系列的位操作符可以使用
    //对于Int和Long类型,还有一系列的位操作符可以使用    val a:Int = 8    //左移位    val b = a.shl(1)    println(b)//16    //右移位    val c = a.shr(1)    println(c)//4    //无符号右移位    val d = a.ushr(1)    println(d)//4    //与    val e = a.and(0b00000000_00000000_00000000_00001000)    println(e)//8    //或    val f = a.or(0b00000000_00000000_00000000_00000000)    println(f)//8    //异或    val g = a.or(0b00000000_00000000_00000000_00000000)    println(g)//8    //按位取反反向    val h = a.inv()    println(h)//8

(3)String类型


  • 对于字符串了解以下练习代码即可(注意下字符串模板的使用$)
    /**     * 双引号     */    val text = "hello"    /**     * 三引号多行字符串     */    val text1 = """    多行字符串    多行字符串    """    println(text1)   // 输出有一些前置空格    /**     * 字符串模板     */    val i = 10    val s = "i = $i" // 求值结果为 "i = 10" $变量名    println(s)    println("${text.length}")//${表达式}

(4)Char类型


  • Char类型用单引号抱起来,支持各种转义字符
    这里写图片描述

    val c1:Char = '0'val c2:Char = '\"'val c3:Char = '\u000f'

    (5)数组类型


  • 相比于Java,Kotlin中也有一些基本数据类型的数组类型
    这里写图片描述

  • 以下是数组的测试代码

fun main(args: Array<String>) {    val arrayOfInt:IntArray = intArrayOf(1,3,5,7)    val arrayOfChar:CharArray = charArrayOf('a','b','c','d')    val arrayOfString:Array<String> = arrayOf("a","b")    val arrayOfTiger:Array<Tiger> = arrayOf(Tiger("张"), Tiger("王"))    //数组长度    println(arrayOfChar.size)    //数组遍历    for (c in arrayOfChar){        println(c)    }    //取出特定位置的数据    println(arrayOfTiger[1]) //王    //字符数组拼接    println(arrayOfChar.joinToString()) //a, b, c, d}//此处涉及到类的声明,暂时写死,不解释class Tiger(var name:String){    override fun toString(): String {        return name    }}
阅读全文
2 0
原创粉丝点击