Kotlin 学习——基本类型

本文详细介绍了Kotlin中的基本类型,包括数字、字符、布尔值、数组与字符串,并通过示例代码展示了每种类型的使用方法及特点。

    在 Kotlin 中,有着几种基本类型:数字、字符、布尔值、数组与字符串。

  • 数字:Kotlin 对于数字的处理接近 Java,但又有不同。如:数字没有隐式拓宽转换。Kotlin 提供了如下的内置类型来表示数字:
类型字节
Double864
Float432
Long864
Int432
Short216
Byte18
    在 Java 平台数字是物理存储为 JVM 的原生类型,除非引用可以为空,或者是泛型。如果是泛型会把数字装箱,则不必保留同一性。
fun main(args: Array<String>) {
    val a:Int = 1000
    println(a === a)
    val A1:Int? = a
    val A2:Int? = a
    // === 是比较地址,相当于 Java 中的 ==
    // == 是比较值,相当于 Java 中的 equals()
    println(A1===A2)
    println(A1==A2)
}

    结果:


    Kotlin 没有隐式转换,较小的数据类型不能默认转换为较大数据类型:

fun main(args: Array<String>) {
    val c:Int? = 1
    //因为 d 可能为空,所以要使用 !!.toLong()将 c 转换为 Long 型
    // !!. 相当于会抛出空指针异常
    var d:Long? = c!!.toLong()
    // 但是一般我们用 if 判断
    var e:Long?
    if (d != null){
        d=c.toLong();
    }
    /*
       或者使用表达式,因为这里都是用的常量,不可能为空,所以会有警告
       但是如果这里的 c 是一个函数,返回值可能为空时就可以这么写
       ?. 不为空时获取值,?: 表示为空时获取 2
    */
    val f:Long?= c?.toLong() ?:2

    println(d)
}
    位运算符:
有符号左移shl(bits)
有符号右移shr(bits)
无符号右移ushr(bits)
位与and(bits)
位或or(bits)
位异或xor(bits)
位非inv(bits)

  • 字符:使用 Char 表示,不能直接当做数字
    比如直接这样比较就会报错:

   

    不过我们可以显示将 Char 转换为 Int 型:
fun main(args: Array<String>) {
    val c:Char = 'a'
    val a =c.toInt()
    println(a)
}

    结果:



    可以看到,显示转换过后,'a’,就是在 ASCII 码中的 97

  • 布尔值:使用 Boolean 表示,有 true 和 false 两个值,若需要可空引用布尔会被装箱。布尔有三种运算:

短路逻辑或||
短路逻辑与&&
逻辑非

  • 数组:在 Kotlin 中,使用 Array 类来表示,使用 get() 和 set() 来获取和添加元素:
fun main(args: Array<String>) {
    // 首先我们定义一个可能为空的,大小为 5 的数组
    var list: Array<Int?> = arrayOfNulls<Int>(5)
    // 有两种方式来添加数组
    list[0] = 0
    // set() 方法第一个参数是下标值,第二个是要添加的值
    list.set(1,1)
    println(list[0])
    // 获取也可以使用 get() 方法,传入下标值
    println(list.get(1))

    // 使用别的方式来创建一个数组
    val x:IntArray = intArrayOf(1,2,3)
    for (list in x){
        print(list)
    }
}

    结果:


    这里我们创建的都是 Int 型的数组,我们还可以使用相同的方式来创建别的类型的数组

  • 字符串:用 String 表示,字符串是不可变的,字符可以使用下标索引,也可以使用 for 循环:
fun main(args: Array<String>) {
    val str = "abcde"
    println(str[3])
    for (char in str){
        print(char)
    }
}

    结果:


    只要第一个元素为字符串,就可以使用 + 进行连接字符串操作:

fun main(args: Array<String>) {
    val str = "abcde"
    val words = str + 1
    print(words)
}

    结果:


    如果我们连接字符时,第一个不是字符串就会报错:


    None of the following functions can be called with the arguments supplied(在提供的参数中不能调用以下函数)

    一些其它的字符串使用:

fun main(args: Array<String>) {
    // 转义字符
    val text1 = "text1\n"
    // 使用 """ """ 的字符串中间不包含任何转义字符
    val text2 = """text2\ntext2\n"""
    // 字符串模板,使用 $+变量名 来进行合并
    val a = 10
    val text3 = "abc$a"
    // 或者使用 ${} 来合并,会先运行 {} 中的代码
    var b = 10
    val text4 = "abc${++b}"
    println(text1)
    println(text2)
    println(text3)
    println(text4)
    println(b)
}

    结果:




### Kotlin 编程语言学习资料与教程 Kotlin 是一种在 JVM 上运行的静态类型编程语言,由 JetBrains 公司开发。它旨在简化 Java 代码的编写,同时保持与 Java 的完全互操作性[^2]。以下是关于 Kotlin 编程语言的一些推荐学习资源和入门指南: #### 1. 官方文档 Kotlin 官方网站提供了详尽的文档和支持材料,适合初学者以及希望深入了解高级特性的开发者。官方文档涵盖了基本语法、函数式编程特性、协程以及其他核心功能[^2]。 - 访问地址:[https://kotlinlang.org/docs/home.html](https://kotlinlang.org/docs/home.html) #### 2. 初学书籍推荐 《Android Kotlin基础学习手册——入门指南+强化实战》是一本非常适合新手的教材,书中不仅讲解了 Kotlin 的基础知识,还通过实际案例帮助读者掌握其应用技巧[^1]。此书特别强调了 Kotlin 和 Java 的对比分析,有助于那些已经熟悉 Java 的程序员快速过渡到 Kotlin 开发。 #### 3. 在线课程平台 多个在线教育平台上都有针对不同水平学员设计的 Kotlin 教程: - **Udemy**: 提供从零基础入门到精通的一系列视频教学内容。 - **Coursera**: 结合理论讲授与实践练习,部分课程甚至是由大学教授主持。 - **Pluralsight**: 针对企业级应用场景展开讨论,更适合有一定工作经验的技术人员进修使用。 #### 4. IDE 支持与环境搭建 为了更高效地进行 Kotlin 开发工作,建议下载并安装 IntelliJ IDEA 或者 Android Studio 这两款强大的集成开发工具之一,并确保已启用内置的 Kotlin 插件支持。完成这些设置之后就可以轻松创建新项目并通过简单示例验证整个流程是否正常运作起来了! #### 5. 处理 Null 值的安全机制 值得一提的是,在安全性方面,Kotlin 将空指针异常检测前置至编译阶段而非等到程序执行期间才发现错误情况发生;如果尝试向不允许接受 null 参数的方法传入 null,则会在编译时报错提示修正相应位置处逻辑缺陷[^4]。这种设计理念极大地减少了潜在隐患带来的风险。 ```python def example(): pass ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值