当前位置:网站首页>Kotlin基础稳固第一天
Kotlin基础稳固第一天
2022-08-08 20:26:00 【不忘初衷z】
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方法。
边栏推荐
猜你喜欢
随机推荐
Superman is coming!Flutter realizes full-screen power animation!
高数_复习_第3章:一元函数积分学
How can recommender systems be trusted?A review of the latest "Trusted Recommender System" from Rutgers University, a 43-page pdf explaining the composition and technology of trusted RS
VSCode 必知必会的 20 个快捷键
【翻译】宣布Kubernetes策略管理论文
The WPF main form calls User32's SetWindowPos to set the form to the top, which will cause the problem of grabbing the focus with other forms
制作实例分割数据集
借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05
方舟综合指令代码大全系统综合
【翻译】用Argo CD揭开企业规模的持续交付的秘密成分
五大理由告诉你为什么开发人员选择代码质量静态分析工具Klocwork来实现软件安全
阿里云OSS文件下载到本地指定文件有坑
兼容并蓄广纳百川,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang复合容器类型的声明和使用EP04
流媒体后视镜前装搭载小幅下滑,远峰与镜泰排位争夺白热化
技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
Canvans:绘制饼图和玫瑰饼图
源码分析Canal专栏
箭头函数this指向的解释
Gartner:2022年全球半导体收入增长预计将放缓至7%,远低于2021年26.3%
【分享】如何在集简云平台自己进行应用开发?









