Kotlin基础——基础内容

本文详细介绍了Kotlin语言的基础概念,包括函数和变量的使用(类型推导、可变性和规则)、类和属性(包括自定义访问器)、枚举与when结构、循环语句(如while、for和迭代map)、以及异常处理。展示了Kotlin与Java的差异以及其简洁的语法特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 函数和变量

1.1 基本程序

fun main(args: Array<String>) {
   
    println("Hello World!")
}

程序从“Hello World”打印开始,从这个简单的程序中,包含Kotlin语言的以下特性:

  • 函数使用关键字fun声明
  • 主函数依然为main函数
  • Kotlin中没有Java中数组类型,数组就是Array类
  • 函数可以定义在文件的最外层,可以不用放到类中
  • 参数类型在参数的后面
  • Java中的很多语句Kotlin做了更简易的封装,比如println
  • 语句结尾不需要分号

1.2 函数

fun max(a: Int, b: Int): Int {
   
    return if (a > b) a else b
}

函数仍然由函数名,参数列表和返回值类型组成。不同的是函数使用fun定义,参数类型和返回值类型在后面

  • Kotlin不支持三元运算符(?😃
  • Kotlin中很多逻辑运算是表达式,可以直接返回值

上面的可以简化为:

fun max(a: Int, b: Int): Int = if (a > b) a else b

这样的函数拥有表达式体,上面有大括号的函数拥有代码块体。
还可以进一步简化为:

fun max(a: Int, b: Int) = if (a > b) a else b

对于拥有表达式体的函数,可以省略其返回值类型,因为Kotlin具有类型推导能力。

1.3 变量

Java中声明变量从类型开始,而Kotlin中很多时候不需要声明变量的类型,因为Kotlin有强大的类型推导功能,能够根据上下文推导出具体的类型。

1.3.1 变量的类型推导

val a = 10
val b = 12.3
val c = "test"

a被推导为Int类型
b被推导为Double类型
c被推导为String类型
Kotlin中没有Java中的基本数据类型,所有类型都是类对象
如果要显示指定数据的类型,可以在变量后面加变量的类型

val d: Byte = 10

1.3.2 可变变量和不可变量

Kotlin中通常有两个变量修饰符

  • val(value):不能在初始化后再次赋值,对应于Java中使用final修饰的变量
  • var(variable):可变变量,对应于Java中的非final修饰符

默认情况下,应该首先使用val修饰符,当变量确实需要改变时,才替换成var修饰符

1.3.3 变量使用规则

在这里插入图片描述
val类型赋值之后不可改变,否则编译不过
在这里插入图片描述
如果变量不在定义的时候初始化,则需要确定其类型,因为Kotlin虽然可以类型推导,但还是静态类型的语言,每个变量都有确定的类型。不在定义的时候确定其类型,编译器无法推导,无法编译通过

val b: Int
if (a > 5) {
   
    b = 1
} else {
   
    b = 0
}

val变量只能赋值一次,如果编译器能够保证只执行一条初始化语句,则可以编译通过

val list = listOf(1, 3, 4)
list.addLast(5)

val变量定义的引用不可变,但是其引用对象的内容可变。list指向一个List对象,不能改变其引用直系指向,但是该List对象可以改变其中存储的元素
在这里插入图片描述
对于var可变类型变量,不能改变其数据类型,当a定义的时候,类型推导为Int类型,此时该变量的类型就已经被确定,不能改变其类型,否则编译失败

1.4 字符串模板

开发中很多时候涉及到字符串拼接,Java中拼接如下

"Hello, " + name + "!"

在Kotlin中可以使用更简便的写法,就是字符串模板

"Hello, $name!"

字符串模板不止可以引用简单变量,还可以引用复杂的变量

val names = listOf("World", "Kotlin")
println("Hello, ${
     names[0]}!")

这里可以使用大括号引用字符串数组的第一个元素

println("Hello, ${
     if (args.size > 0) args[0] else "World"}!")

大括号中还可以嵌套表达式

2 类和属性

Kotlin也是面向对象的语言,是JVM语言,在Java虚拟机上运行,所以也是有类和属性一说
Java中有一个JavaBean的概念,表达的是一种Java中规范类的写法

public class Person {
   
    private final String name;

    public Person(String name) {
   
        this.name = name;
    }

    public String getName() {
   
        return name;
    }
}

通常这些构造函数和get方法都是比较重复的代码,与具体的业务逻辑无关
可以将上面的代码拷贝到kotlin文件中,能够自动将Java代码转换成kotlin代码

class Person
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值