当前位置:网站首页>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方法。
边栏推荐
猜你喜欢
数据解读!智能座舱“升级战”背后,本土供应链加速崛起
学习笔记:第三章 栈与队列
黑猫带你学Makefile第5篇:Makefile中函数的使用
深度学习初步认知
内网渗透之代理转发
2022-08-08 第六小组 瞒春 学习笔记
tar zcf是单线程瓶颈
NAACL2022 NER SOTA—RICON学习笔记
What are the latest developments in the handling of false information?KDD2022 "Fighting Misinformation and Responding to Media Bias" tutorial, 161 pages ppt
LeetCode_2_两数相加
随机推荐
源码分析Canal专栏
技术分享活动
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
信号与系统【x(t)*h(t)=y(t) 求h(t)】附matlab代码
虚假信息处理最新有何进展?KDD2022《打击错误信息和应对媒体偏见》教程,161页ppt
PyTorch入门(六):模型的训练套路
PHP使用glob()查找文件
2022年云商店联合营销市场发展基金(MDF)介绍
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
暑期“小候鸟”超员增多 惠州交警提醒:安全出行不能忘
fillder4 keeps prompting the system proxy was changed, watch me solve it
内网渗透之代理转发
如何用WebSocket打造Web端IM即时通讯聊天
Ansible自动化运维工具(一)安装及模块
实践篇1:深度学习之----LetNet之tensorflow2的实现
Factorial of 1088 N
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
知乎高赞:如果一个程序员工作5年后还没成为大牛,是不是该考虑别的路子了?
什么是仿射函数?
有幸与美团大佬共同探讨单节点连接数超1.5W的问题