随笔分类 - 02-Kotlin基础知识点详述
1
摘要:我们在使用Java语言时,经常会出现空指针异常NullPointerException。Kotlin基于过往语言设计的经验对这一问题进行了改良,把运行时可能出现的null问题,以编译时错误的方式,提前在编译期强迫我们重视起来,而不是等到运行时报错,防患于未然,提高我们程序的健壮性。 Kotlin语言
阅读全文
摘要:kotlin语言区分可空类型和非空类型,并且不允许可空类型值调用函数,除非主动接手空安全管理 方式一:安全调用操作符"?." 方式二:带let函数的安全调用操作符"?.let{ }" let函数说明: 1.是调用的let函数,就把它作为参数在函数体中使用 2.let函数的返回值是匿名函数体最后一行语
阅读全文
摘要:函数 函数头 函数参数 Unit函数 匿名函数和隐式返回 函数类型 匿名函数参数和it关键字 匿名函数的类型推断 定义参数是函数的函数 函数内联 函数引用 函数类型作为返回类型 闭包
阅读全文
摘要:把函数作为参数传递给其他函数,除了使用lambda表达式,Kotlin还提供了其他方法,也可以使用函数引用。使用函数引用可以把具名函数转换成值参,凡是使用lambda表达式的地方,都可以使用函数引用。
阅读全文
摘要:例: 简略写法 如果一个函数使用了匿名函数作为参数,并且此匿名函数排在参数的最后或者只有这一个参数时,那么包住lambda表达式的括号可以省略
阅读全文
摘要:当给一个变量显示赋值一个匿名函数时,就无须定义变量的类型了,编译器会自动推断 无参数的匿名函数类型推断:(只需要推断返回值类型) 带参数的匿名函数类型推断:(既要推断参数个数和类型,还要推断返回值类型)
阅读全文
摘要:和具名函数一样,匿名函数可以不带参数,也可以带一个或多个任意类型的参数,需要带参数时,参数类型放在匿名函数的类型定义中,参数名放在函数定义中。 例如: 当定义只有一个参数的匿名函数时,可以使用it关键字来表示参数名。定义两个以上参数时,it关键字就不能用了 例如:
阅读全文
摘要:在Kotlin中像字符串String,整型Int一样,“函数”也是一种类型,叫做函数类型。函数具体是哪种类型,由传入的参数和返回值类型决定。匿名函数可以赋值给类型是函数的变量,变量的类型就是匿名函数的类型。 例如: 给变量赋值: 直接赋值
阅读全文
摘要:定义时不取名字的函数,我们称之为匿名函数,匿名函数通常整体传递给其他函数,或者从其他函数返回 有了匿名函数我们可以给标准库里的内置函数(标准函数)制定特殊规则 例如: 运行结果为: 和具名函数不一样,匿名函数不需要return关键字来返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果
阅读全文
摘要:不是所有函数都有返回值,Kotlin中没有返回值的函数叫Unit函数,也就是说它的返回值类型是Unit 例如: 运行结果为:
阅读全文
摘要:一、默认值参 如果不打算传入值参,可以预先给参数指定默认值 例如: 1.函数调用时不传参使用默认值 运行结果为: 2.函数调用时传参,会覆盖指定的默认值 运行结果为: 二、具名函数参数 如果使用命名值参,参数传递时就不用考虑参数顺序 例如:
阅读全文
摘要:声明函数 注:具名函数没有返回值类型推断,如果没有返回值,类型为Unit,可以省略不写。如果有返回值,必须显示给出。
阅读全文
摘要:Kotlin字符串模板支持在字符串的引号内使用变量,以及添加任何表达式,会把表达式的结果作为字符串的一部分,实现java字符串拼接的效果 例如: 运行结果:
阅读全文
摘要:一、if/else if 表达式 在Java中if...else是语句,而在kotlin中if..else是表达式,是有结果的 例如: 二、range表达式 用in关键字判断值是否在某个范围内,in A..B,左右两边都是闭区间[A,B] 例如: if(age !in 0..3){ //age不在0
阅读全文
摘要:方式一:双击shift,输入show kotlin bytecode 方式二:菜单栏Tools->Kotlin->Show Kotlin Bytecode
阅读全文
摘要:Java中的数据类型有基本数据类型和引用数据类型两种 Kotlin中只有引用数据类型,但出于更高性能的考虑,编译器会在字节码中将引用类型转为对应的基本数据类型
阅读全文
摘要:Kotlin语言在声明变量时,编译器可以根据变量的赋值推断出变量的类型,因此在变量声明时可省略类型定义 val age: Int = 2val age = 2val name:String = "Jack"val name = "Jack"val isFlag:Boolean = trueval i
阅读全文
摘要:类型 描述 示例 String 字符串 "Hello,World" Char 单字符 'A' Boolean true/false true false Int 整数 5 Double 小数 3.14 List 元素集合 "Jack","Rose","Jack" Set 无重复元素的集合 "Jack
阅读全文
摘要:只读变量并非绝对只读 编译时常量只能在函数之外定义(包括main函数) 因为编译时常量必须在编译时赋值,而函数都是在运行时调用,函数内的变量也都是在运行时才赋值,编译时常量在这些变量赋值前就已经存在了。 编译时常量只能是常见的数据类型 Byte、Short、Int、Long、Char、Float、D
阅读全文
摘要:变量声明 变量声明关键字: 要声明可修改变量,使用var关键字 要声明只读变量,使用val关键字
阅读全文
1