Kotlin(3)基本语法

包定义与导入包

1 kotlin.*

2 kotlin.annotation.* 注解类

3 kotlin.collections.* 集合操作的类,有list、set、map

4 kotlin.comparisons.* 元素比较的包

5 kotlin.io.*

6 kotlin.ranges.* 区间表达包

7 kotlin.sequences.* 序列的包,元素非常多的情况下速度更快

8 kotlin.text.* 文本和正则表达式的包

入口程序

Kotlin程序的入口是main函数

fun main(){

println("Hello world!")

}

main的另一种形式接受可变数量的String参数

fun main(args: Array<String>){

println(args.contentToString())

}

"<>"里是泛型,是你能传进去参数的类型

args是变量名,它是一个字符串数组

printlin里是数组类的一个方法

输出到控制台

print将其参数打到标准输出

fun main(){

//不换行输出

print("Hello ")

print("world!")

//换行输出

println("Hello world!")

println(42)

}

函数

定义函数的语法

fun 函数名(参数:类型):返回类型{

//函数体

}

举例

fun sum(a: Int, b: Int) : Int {

return a+b

}

表达式作为函数体,返回类型自动推断

fun sum(a: Int, b: Int) = a + b

//public方法则必须明确写出返回类型

public fun sum(a: Int, b: Int): Int = a + b

返回无意义的值的函数

fun printSum(a: Int,b: Int): Unit{

println("sum of a and b is ${a + b}")}

变量

定义只读局部变量使用关键字val定义。只能为其赋值一次。

val a: Int = 1 //立即赋值

val b = 2 //自动推断出"Int"类型

val c: Int //如果没有初始值,类型不能省略

c=3 //明确赋值

println("a = a, b = b, c = $c")

可重新赋值的变量使用var关键字

var x = 5 //自动推断出"Int"类型

x += 1

可在函数外部声明变量,是全局变量

val PI = 3.14

var x = 0

fun main(){

println("x = x ; PI = PI")

}

Kotlin中的数字没有隐式拓宽转换

fun main(){

val i = 1 //int

val d = 1.0 //double

val f = 1.0f //float

printDouble(d)

printDouble(i) //错误:类型不匹配

printDouble(f) //错误:类型不匹配

}

fun printDouble(d:Double) { print(d) }

可以用下划线分割数字,使得更易于读取

val oneMillion = 1_000_000

trimMargin()去掉分节符"|"

数组

用Array类创建数组

控制流程

条件语句

循环语句

流程控制语句

相关推荐
JohnnyDeng941 天前
【Android】Room 数据库高级用法与性能调优:从查询瓶颈到毫秒级响应
android·性能优化·kotlin·room
Refrain_zc1 天前
Android 英语口语评测:从录音采集到单词级着色反馈的完整技术方案
kotlin
plainGeekDev1 天前
文件读写(Java IO)→ Kotlin 扩展函数
android·java·kotlin
消失的旧时光-19431 天前
Kotlin 协程设计思想(九):Flow 到底是什么?为什么 suspend 函数还需要 Flow?
android·kotlin·协程·协程异常
消失的旧时光-19431 天前
Kotlin 协程设计思想(八):suspend 到底是什么?为什么 suspend 不是开启协程?
android·kotlin·suspend·continuation
plainGeekDev1 天前
SharedPreferences → DataStore
android·java·kotlin
plainGeekDev1 天前
Cursor 操作 → Room DAO
android·java·kotlin
朝星1 天前
Android开发[10]:性能优化之内存
android·kotlin
brycegao3211 天前
Android MVI进阶:纯原生实现Slot化可插拔架构
android·kotlin·架构设计·mvi·viewmodel