kotlin入门知识点总结 常量,条件语句,String,方法,UNIT函数和NOTHING函数
Posted wodongx123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin入门知识点总结 常量,条件语句,String,方法,UNIT函数和NOTHING函数相关的知识,希望对你有一定的参考价值。
文章目录
参考材料
从 VIP课程 2021-4-2 kotlin专题,适合有java基础的人
直接百度搜索码牛学院就可以找到
1. 变量常量和类型
kotlin中,变量的定义是这样
var 变量名: 变量类型
比如: var str: String ,就是声明了一个类型为String的变量str
val表示这是一个不可变量,他的值在定义之后就不可改变
// 这种写法会报错
val str: String = "hello world"
str = "hello kotlin"
// 这种写法不会报错
val str: String
//... 插入若干行代码...
str = "hello world"
1.1 类型推断
如果某个变量的类型是显而易见的,你可以不需要去声明他的类型
var str = "hello world"
双引号,表示了这一定是一个String类型,所以我们可以省略他的类型声明,即冒号和后面的String
1.2 编译时常量
编译时常量必须在方法之外定义,因为编译时常量会在编译时直接赋值,而方法都是在运行时才被调用。
编译时常量只能用基本数据类型+String一共9种
const val MAX = 100
2. 条件语句
2.1 if/else
同java
2.2 range
kotlin特有的,从某个范围内寻找某个数。
写法是 in 范围下限…范围上限
搜索的范围包括上下限
例:
var a = 10
if(a in 10..15)
println("yes")
else
println("no")
结果输出yes
2.3 when
类似于java的switch语句,不同点是写法比较方便且支持表达式。
所以google官方推荐你只要代码有三个以上的if分支,就使用when来代替if/else语句
例:
var school = "小学"
var student = when(school){
"小学" -> "小学生"
"初中" -> "初中生"
"高中" -> "高中生"
"大学" -> "大学生"
else -> {
println("未知类型学生")
}
}
println(student)
输出是小学生
写法近似switch语句,且自带break,不会往下传递。
然后else对应的是switch语句的default部分。
3. String
kotlin支持在String里面放入变量甚至表达式(类似php),只要用美元符号$声明即可
例1:
var str1 = "hello"
var str2 = "world"
pintln("$str1 $str2. hello kotlin.")
输出是hello world. hello kotlin
例2:
var flag = false
println("你是老师还是学生? ${if(flag) "老师。" else "学生。"}")
输出:你是老师还是学生? 学生。
4. 方法
方法的定义和java大同小异
private fun doSomething(param1 : Type1, param2: Type2) : Type{
//........具体逻辑......
// doSomething
}
权限声明符同java,有public protect和private以及默认四种
fun 是方法声明符,必加
doSomething是方法名
param1,param2是参数列表,Type1,Type2是参数对应的数据类型
冒号和后面的Type表示这个方法的返回类型,不加就没有返回类型
例:
public fun compare(a: Int, b: Int): Boolean{
return a>b
}
4.1 默认传参
方法的参数列表可以有默认的值,当不传入值的时候就会直接取默认值
private fun printNum(a: Int = 100, b:Int = 200){
println("a = " + a)
println("b = " + b)
}
例1:
printNum(150)
a = 150
b = 200
例2(这个例子表明了,函数的调用可以按自己喜欢的顺序传参,只要标注参数名即可):
printNum(b=150)
a = 100
b = 150
4. kotlin字节码
Tools -> kotlin -> show kotlin bytecode
再点击Decompile,就可以将字节码转成java文件。
之后遇到一些语法会转java,来比较一下两个语言的区别。
5. Unit函数
某个方法,如果没有标注任何的返回值,那它的返回值就是kotlin.unit
fun test(){}
fun main(args: Array<String>) {
println(test())
}
翻译成java文件后,是这样的
public static final void test() {
}
public static final void main(@NotNull String[] args) {
test();
Unit var1 = Unit.INSTANCE;
System.out.println(var1);
}
这个Unit.INSTANCE,就是一个类,长这样(object在kotlin中,代表着单例,所以Unit类会自带一个INSTANCE变量)
public object Unit {
override fun toString() = "kotlin.Unit"
}
6. Nothing
TODO方法的返回类型是Nothing,其实就是抛出异常。
fun main(args: Array<String>) {
TODO("aaaaaaa")
}
// inline表示这个函数是一个内联函数,之后会说到
@kotlin.internal.InlineOnly
public inline fun TODO(reason: String): Nothing = throw NotImplementedError("An operation is not implemented: $reason")
输出:
Exception in thread “main” kotlin.NotImplementedError: An operation is not implemented: aaaaaaa
at TestKt.main(Test.kt:5)
转JAVA:
public static final void main(@NotNull String[] args) {
String var1 = "aaaaaaa";
throw (Throwable)(new NotImplementedError("An operation is not implemented: " + var1));
}
以上是关于kotlin入门知识点总结 常量,条件语句,String,方法,UNIT函数和NOTHING函数的主要内容,如果未能解决你的问题,请参考以下文章