kotlin作为谷歌钦定的安卓开发官方语言,语法简洁,相比于Java,包含了现代语言高级特性。它也是一门跨平台语言,可以脱离虚拟机,直接编译成二进制可执行文件在各大平台运行
本文基于有一定的Java基础
一.变量常量
1.声明变量
var关键字 变量名:变量类型 = 初始值
代码语言:javascript复制 //var关键字 变量名:变量类型 = 初始值
var name: Int = 5
2.内置数据类型
数据类型
3.只读变量
我们可以用val关键字声明只读变量,和Java中final关键字相同
代码语言:javascript复制fun main() {
// 变量名:变量类型 = 初始值
var age: Int = 5
val name:String = "张三"
}
4.类型推断
声明变量时如果已经初始化,kotlin允许省略数据类型
代码语言:javascript复制fun main() {
// 变量名 = 初始值
var age = 5
val name = "张三"
}
5.常量
只读变量并不是常量,也是可以修改的 如果想要定义一个常量,就像我们Java中的:
代码语言:javascript复制public static final int MAX = Integer.MAX_VALUE;
则也需要在函数外定义:
代码语言:javascript复制const val MAX = 100
fun main() {
print(MAX)
}
常量只能是基本数据类型:Int,Long,Short,Float,Double,String,Byte,Char,Boolean
二.条件语句
1.if / else if语句
和Java相同
代码语言:javascript复制fun main() {
var gender = 0
if (gender == 0) {
print("男")
} else {
print("女")
}
}
2.range表达式
可以判断一个元素是否在集合里: [item] in [start]..[end]
代码语言:javascript复制fun main() {
var age = 8
if (age in 0..10) {
print("小孩")
}
}
3.when表达式
相当于Java中的switch表达式: case被省略,: 变为 ->
代码语言:javascript复制fun main() {
var age = 10
when (age) {
0 -> {
print("a")
}
10 -> {
print("b")
}
else -> {
print("c")
}
}
}
4.string模板
脚本语言都有的 $取变量内容 字符串拼接方便很多
代码语言:javascript复制fun main() {
val name = "张三"
var who = "他是$name"
val age = 5
var my = "我是${name},我今年${age}岁"
println(who)
println(my)
}
结果: 他是张三 我是张三,我今年5岁
三.函数
1.函数定义
代码语言:javascript复制//修饰符 函数声明关键字 函数名 入参 返回类型
private fun getInfo(age: Int): String
2.函数入参
可以给入参设定默认值
代码语言:javascript复制private fun getInfo(age: Int = 5, name: String): String {
return ""
}
调用函数时,不需要一定按照函数定义的顺序传参
代码语言:javascript复制fun main(){
getInfo(name = "张三",age = 10)
}
//修饰符 函数声明关键字 函数名 入参 返回类型
private fun getInfo(age: Int = 5, name: String): String {
return ""
}
3.返回参数Nothing类型
TODO函数就是抛出异常,使用Nothing类型作为返回参数
代码语言:javascript复制fun main() {
println("123")
TODO("抛出一个异常")
println("456")
}
结果:
代码语言:javascript复制123
Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented: 抛出一个异常
at com.aruba.mykotlinapplication.FunctionKt.main(function.kt:11)
at com.aruba.mykotlinapplication.FunctionKt.main(function.kt)
4.特殊的函数名
如果我们想用使用一段话来作为函数名,可以使用``将函数名包裹
代码语言:javascript复制fun `哈哈,这是一个特殊的函数`(){}