Kotlin基本类型

前言

  • 你还在把Java当成Android官方开发语言吗?Kotlin了解一下!
  • 2017年Google IO大会宣布使用Kotlin作为Android的官方开发语言,相比较与典型的面相对象的JAVA语言,Kotlin作为一种新式的函数式编程语言,也有人称之为Android平台的Swift语言。

环境以及工具

Android Studio 3.3

数字

Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于数字没有隐式拓宽转换(如 Java 中 int 可以隐式转换为long——译者注)

Kotlin 提供了如下的内置类型来表示数字(与 Java 很相近):

类型字节大小
Double8
Float4
Long8
Int4
Short2
Byte1
  1. 比较两个数
  //-----------------------比较两个数-------------------------------------
    //三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小
    val a: Int = 128
    println(a === a)//输出结果-------------------------true-------------------------
    val b: Int? = a
    val c: Int? = a
    println(b == c)//输出结果-------------------------true-------------------------
    //如果 a<128  false, a>=128  true 长话短说,JVM把[-128,127]的所有int数字全部缓存了,
    // 任何指向这个范围的对象,都不可能被另外"创建",又何谈“装箱”
    println(b === c)//输出结果-------------------------false-------------------------
  1. 显式转换
  //-----------------------显式转换-------------------------------------
    //较小类型并不是较大类型的子类型,我们可以显式转换来拓宽数字类型
    val x: Byte = 1
    //val y: Int = b // 转化错误
    val y: Int = x.toInt()
    println(y)//输出结果-------------------------1-------------------------
  1. 自动类型转化
   //-----------------------自动类型转化-------------------------------------
    val temp = 10L + 3 // Long + Int => Long
    println(temp)//输出结果-------------------------13-------------------------
  1. 运算
    //-----------------------位操作符-------------------------------------
    //左移
    val shlShow = 1.shl(2)
    println(shlShow)//输出结果-------------------------4-------------------------
    //右移
    val shrShow = 4.shr(2)
    println(shrShow)//输出结果-------------------------1-------------------------)

字符

字符用 Char 类型表示。它们不能直接当作数字

    //-----------------------字符-------------------------------------
    //字符用 Char 类型表示。它们不能直接当作数字,字符字面值用单引号括起来: '1'
    val ch: Char = 'a'
    println(ch)//输出结果-------------------------a-------------------------
    val chToInt: Int = ch.toInt()
    println(chToInt)//输出结果-------------------------97-------------------------

布尔

    //-----------------------布尔-------------------------------------
    val bl: Boolean = false
    println(bl)//输出结果-------------------------false-------------------------

数组

    //-----------------------数组-------------------------------------
    val arrs = arrayOf(1, 2, 3, 0, 6)
    for (arr in arrs) {
        print("$arr,")//输出结果-------------------------1,2,3,0,6,-------------------------
    }
    println()
    val arrs2 = Array(3) { i -> (i * 2) }
    for (arr in arrs2) {
        print("$arr,")//输出结果-------------------------0,2,4,-------------------------
    }
    println()

    val z: IntArray = intArrayOf(1, 2, 3)
    z[0] = z[1] + z[2]
    println(z[0])//输出结果-------------------------5-------------------------

字符串

 //-----------------------字符串-------------------------------------
    val strs: String = "12306"
    for (s in strs) {
        print("$s,")//输出结果-------------------------1,2,3,0,6,-------------------------
    }
    println()

  1. 字符串字面值

Kotlin 有两种类型的字符串字面值: 转义字符串可以有转义字符,以及原始字符串可以包含换行以及任意文本。转义字符串很像 Java 字符串:

    //转义字符串可以有转义字符
    val ss = "Hello, world!\n"
    println(ss)//输出结果-------------------------Hello, world!\n-------------------------
    val sss = "Hello, world2!"
    println(sss)//输出结果-------------------------Hello, world2!-------------------------

输出结果

Hello, world!

Hello, world2!
  1. 原始字符串
  
    //原始字符串 使用三个引号(""")分界符括起来,
    //内部没有转义并且可以包含换行以及任何其他字符
    //默认 | 用作边界前缀
    println("原始字符串star")
    val text1 = """
    for (c in "foo")
        print(c)
"""
    println(text1)
    println("原始字符串end")
    var text = """
        |666
        |777
        |999
        """.trimMargin()//前置空格删除
    println(text)
    println(text.length) 

输出结果

原始字符串star

    for (c in "foo")
        print(c)

原始字符串end
666
777
999
11

字符串模板

  //-----------------------字符串模板-------------------------------------
    val i = 12306
    val s = "i = $i"
    println(s)//输出结果-------------------------i = 12306-------------------------

    val s2 = "I am boyi.chen"
    val str = "$s2.length is ${s2.length}"
    println(str)//输出结果-------------------------I am boyi.chen.length is 14-------------------------

    val price = "$9.99"
    println(price)//输出结果-------------------------$9.99-------------------------

源码

请关注公众号并在后台回复:kotlin

Kotlin重构系列分享教程

Kotlin环境搭建
Kotlin重构初体验之告别FindViewById
Kotlin重构如何兼容原先的ButterKnife、EventBus3.1
当ButterKnife8.8.1碰到AndroidX怎么办
Kotlin教程Githup开源项目

Python爬虫系列分享教程

Python爬虫之旅之Selenium库的使用
Python爬虫之旅之豆瓣音乐

请关注我(分享日常开发)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值