入门知识
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"
编译时常量的定义实现不能写在函数内,不适用于局部变量