Android第一行代码——快速入门 Kotlin 编程(2.3变量和函数)

本文介绍了Kotlin编程中的基本元素——变量和函数。变量分为val(不可变)和var(可变),Kotlin通过类型推导简化了变量声明。函数是代码的载体,可以接收参数并返回值。文中还讲解了如何定义和调用函数,以及函数的单行语法糖,展示了如何使用max()内置函数比较两个数并返回较大值。
摘要由CSDN通过智能技术生成

目录

2.3        编程之本:变量和函数

2.3.1        变量

2.3.2        函数


2.3        编程之本:变量和函数

        编程语言之多,让人眼花缭乱。你可能不知道,世界上一共诞生过600 多门有记录的编程语言, 没有记录的那就更多了。这些编程语言基本上共有的特性就是变量和函数。可以说,变量和函数就是编程语言之本。那么本节我们就来学习一下 Kotlin 中变量和函数的用法。

2.3.1        变量

        先来学习变量。在 Kotlin 中定义变量的方式和 Java 区别很大,在Java 中如果想要定义一个变量,需要在变量前面声明这个变量的类型,比如说 int a 表示 a 是一个整型变量,String b 表示b 是一个字符串变量。而 Kotlin 中定义一个变量,只允许在变量前声明两种关键字:val var

        val(value 的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋值,对应 Java 中的 final 变量。

        var(variable 的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应 Java 中的 非 final 变量。

        如果你有 Java 编程经验的话,可能会在这里产生疑惑,仅仅使用 val 或者 var 来声明一个变量, 那么编译器怎么能知道这个变量是什么类型呢?这也是 Kotlin 比较有特色的一点,它拥有出色的类型推导机制。

        举个例子,我们打开上一节创建的 LearnKotlin 文件,在 main() 函数中编写如下代码:

fun main() {
    var a = 10
    println("a = " + a)
}

        注意,Kotlin每一行代码的结尾是不用加分号的,如果你写惯了Java 的话,在这里得先熟悉一 下。

        在上述代码中,我们使用 val 关键字定义了一个变量 a,并将它赋值为10 ,这里 a 就会被自动推导成整型变量。因为既然你要把一个整数赋值给 a,那么 a 就只能是整型变量,而如果你要把一 个字符串赋值给 的话,那么 a 就会被自动推导成字符串变量,这就是 Kotlin 的类型推导机制。

        现在我们运行一下 main() 函数,执行结果 如图2.6 所示,正是我们所预期的。

图2.6        打印变量 a 的值

        但是Kotlin的类型推导机制并不总是可以正常工作的,比如说如果我们对一个变量延迟赋值的 话,Kotlin就无法自动推导它的类型了。这时候就需要显式地声明变量类型才行,Kotlin提供了对这一功能的支持,语法如下所示:

val a: Int = 10 

        可以看到,我们显式地声明了变量 aInt 类型,此时 Kotlin 就不会再尝试进行类型推导了。如果现在你尝试将一个字符串赋值给 a,那么编译器就会抛出类型不匹配的异常。

         如果你学过 Java 并且足够细心的话,你可能发现了 Kotlin 中 Int 的首字母是大写的,而 Java 中 int 的首字母是小写的。不要小看这一个字母大小写的差距,这表示 Kotlin 完全抛弃了Java 中的 基本数据类型,全部使用了对象数据类型。在 Java 中 int 是关键字,而在 Kotlin 中 Int变成了一个类,它拥有自己的方法和继承结构。表2.1 中列出了 Java 中的每一个基本数据类型在Kotlin 中对应的对象数据类型。

表2.1 Java 和 Kotlin 数据类型对照表
  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值