Kotlin 基础教程二

constructor 构造器一般情况下可以简化为主构造器 即: class A constructor(参数) : 父类 (参数) 也可以在构造器上直接声明属性constructor ( var name) 这样可以全局访问

init { } 将和成员变量一起初始化

thread {} ktx 默认创建一个线程

susped 挂起

data class 可以简化一些bean类 比如get / set ,自动生成copy 函数 var data2 = data.copy data class 会简化为自动将构造函数填充至具体数值 如果想改变顺序 则需要重写 component 函数

== java中是比较地址 kotlin 则是比较equals 比较内存地址 用 ===

?: 三目运算符 data.message ? : "data" ?:后面为第一个语句的表达式的结果 等同于java的 ? a : b

?. 安全调用符号 防止空指针

when 操作符 类似于java switch ,不过when 可以有返回值 比如 var code : Int when(data ) = {xxx -> 0}

when(data){

1 -> xx

2,3 -> xxx,如果返回值一样 用,分割 等同于 case : case : break;

}

ArrayList 访问具体数据与数组相同 listposition

operator 加上这个操作符可以通过操作符进行调用

forEach 遍历 {值 : List ->} 可以简化为 {it , it=值}

filter {传入表达式 过滤出一个新的集合} var list2 = list.filter{it.code = 200}

in 区间 for(i in 0..99)

until 函数(加上了infix关键字)不包含右边界 比如 for(i in 0 until data.length)

indices 等同于length size

fun 修饰函数可以在函数中嵌套使用 可以调用外部对象 但是每次调用会生成一个函数对象

private set 私有化set 方法

@get 获取名称

@JvmOverloads 生成重写方法

扩展 可以给成员属性加上指定函数 比如 需传入Float 可以写成 fun Float.getValue(){this == Float}然后可以1f.getValue 如果和之前定义的函数名和参数相同 一般会执行之前的函数, 静态解析

@ViewGroup.firstView : View get() = getChildAt(0)

inline 内联函数将内部的代码块直接引用 copy 过来到调用的地方,减少调用栈

:: 传入方法 函数, fun setClick(listener : (View) -> Unit) --- v.setOnClick(::Click)

fun click(view : View)xx or {} 函数类型即接口

reified 指定泛型

by ------by lazy 只加载一次 ,调用时加载 by后面跟一个对象类型 var 需要重写 operator get set val 只需要get

apply also repeah with run 作用域函数

apply 初始化的操作 当前对象为this 返回当前对象 this

let 初始化,当前对象为it return @let it 做判断时候使用合适

also 等同于let also 返回调用对象

run 等同于let 当前对象用this findViewById<XX>(R.id.xx).run{ 初始化参数}

返回自身 apply also 返回this apply 不返回自身的 run let

相关推荐
玖玥拾2 分钟前
C# 语言进阶(十三)网络 DLL 库分层设计
服务器·开发语言·网络·网络协议·c#
2601_949816358 分钟前
C++内存对齐与结构体填充深度精讲:底层规则、内存裁剪、适配优化与工程避坑
开发语言·arm开发·c++
心中有国也有家9 分钟前
AtomGit Flutter 鸿蒙客户端: AnimatedScale 与 AnimatedContainer 联合实战
android·javascript·flutter·华为·harmonyos
浩瀚地学13 分钟前
【面试算法笔记】0105-数组-螺旋矩阵
java·开发语言·笔记·算法·面试
Geek-Chow28 分钟前
Mobile App Certificate Pinning: Underlying Principle and a Swift Example
开发语言·ios·swift·安全架构
阿豪只会阿巴37 分钟前
两小时快速入门 FastAPI--第一回
开发语言·python·fastapi
你怎么知道我是队长1 小时前
JavaScript 事件介绍
开发语言·前端·javascript
CodeStats1 小时前
【Linux IO】从文件描述符到硬件中断:Linux IO 系统底层完全拆解
java·linux·开发语言·io·socket
恋猫de小郭1 小时前
Flutter Windows 开始支持 Impeller ,还修复了多窗口 bug
android·前端·flutter
着迷不白1 小时前
Linux系统故障修复、日志管理与安全加固实战指南
开发语言·php