Featured image of post Kotlin学习笔记-1

Kotlin学习笔记-1

kotlin入门以及变量部分的概略

入门知识

kt包

在kotlin中,存在包的概念,一个项目可以有很多包,他们是可以独立运作的

在IDEA中,如果创建了包,则会在kt文件顶部直接声明

// 该文件隶属于包tenshi.first.demo
package tenshi.first.demo

只要在同一个包中,kt文件就几乎不受目录结构影响

导入类

导入属于十分常见的方法,在文件顶部声明

// 导入tenshi.security中的所有类
import tenshi.security.*

main() 函数

kt程序的入口是main函数

fun main(){
    print("Hello ")
    print("World!")
    println("Hello World!")
}

输出结果为下:

Hello World!
Hello World!

这是因为,print函数不会换行

而println(print\n)函数则是将自己作为独立的一行输出

注释

kotlin中的注释分为行注释与块注释,具体写法如下:

// 我是行注释
/* 我是块
    注释 */

块注释支持嵌套

/* 我是块注释开头
/* 我属于块注释的嵌套 */
块注释的尾巴在这里 */

具体更多的函数实现将会在以后的笔记中呈现,现在暂时略过

数据类型

Kotlin有以下常见的数据类型:

String 字符串
Char 单字符
Boolean 布尔值t/f
Int 整数
Double 双精度小数
Float 单精度小数
List 集合
Set 无重复的集合
Map 键值对集合
Unit 无输出函数对象类似于java的void
Nothing 多用于抛异常永不输出的函数对象
......

看似以上全是引用类型,但当其编译再转入jvm时,就会变成基本类型使用

var与val

var定义的是可变变量 而val定义的是只读变量

请看代码:

// 将"v1"这个字符串赋值给变量v1
var v1: String = "v1"
// 将"v2"这个字符串赋值给只读变量v2
val v2: String = "v2"

由于Kotlin自带类型推断,于是我们可以将其写为这个格式:

// 将"v1"赋值给变量v1,编译器自动将v1推断为String
var v1 = "v1"
// 将"v2"赋值给只读变量v2,编译器自动将v2推断为String
val v2 = "v2"

只读变量与编译时参数不同,只读变量如果属于List类型,其中的元素依然可以更改,但元素的数量以及类型均为只读

定义编译时参数的实现如下

const val v1: String = "v1"
// 当然,这同样支持类型推断
const val v1 = "v1"

编译时常量的定义实现不能写在函数内,不适用于局部变量