Kotlin基础稳固第一天

kotlin基础稳固第一天

快速的查询数据库类中的数据,比如查找最大的一个数
首先定义一个数据类

data class Person(val name:String, val age:Int? =null) 其中?表示这个数据可以为空,这是给重要的知识点,必须牢记!
现在来使用这个数据库类把
fun main(args:Array< String>{
fun person = listOf(Person(“Zhang”),Person(“Zhao”,15))
}

其中我们创建了一个list集合,集合内存了两个数据类,注意其中一个数据类的构造函数只有一个name,因为我们这创建数据类的时候设置的第二个函数是可以为空的,所以如果不输入值,系统会默认为我们创建一个age为null的变量

现在比较这两个数据类age的大小

val oldest =person.maxBy(it.age ?: 0) 其中?:的是Elvis运算符,表示如果没有值会被替换成0,所以Zhao是最大岁数的
oldest 是 15

函数的简单写法,比如传入两个值比较最大值
fun max(a : Int , b : Int) :Int {
return if(a>b) a else b
}
上面的函数就是比较一个Int值的大小,但是这个函数的函数题是由单个表达式构成的话,可以用这个表达式作为完整的函数体,并且去掉花括号和return 语句

fun max (a :Int , b : Int ) :Int = if (a > b) a else b 如果函数体写在花括号内,那么这个函数有代码块体,如果他直接返回了一个表达式,那么它就是给表达式体

关于变量 修饰符 val var 的区别

在java中声明变量的方法
String name = “张三” 需要申明这个变量是String类型,并且如果需要这个变量不可变的话,还需要增加final常量,但是在kotlin中完全省略了,只需这样编写
val name = ”张三“ 无需申请变量类型,因为kotlin编译器会推导出来这是个String类型的,并且增加val修饰符,那么这个变量是不可变的。不过要懂得一个概念就是引用自身(name)是不可变的,但是它指向的对象是可变的,比如指向了一个集合类型,那么这个集合类型是可变的,比如:
val list = arrayListOf(“1”)
list.add(“5”) 这段代码是完全有效的
var age = “5” 使用var修饰的变量是可变的,允许改变它的量,但是不允许改变它的类型;比如: var age = “5” | var age = “张三” 这种方法是错误,因为它的类型不可变。

更简单的字符串模版

在kotlin中输出字符串是 println(“Hello Kotlin”) 还可以在println使用$(变量)使用,比如:
val name = “Kotlin” println(“Hello $ {name}”) 注意的是如果$背后没有再跟任何字符的话,就可以去掉花括号

类和属性

在java创建一个数据类,往往我们需要为变量创建get,和set方法。但是在Kotlin中是不需要的。
class Person(val name:String ,var age : Int) Kotlin会自动为name变量创建get方法,因为name是val修饰的,那么它只有一个get方法,但是会为var修饰的age变量创建get和set方法。

你可能感兴趣的:(笔记)