Kotlin

From Java To Kotlin 2:Kotlin 类型系统与泛型

上期主要分享了 From Java To Kotlin 1 :空安全、扩展、函数、Lambda。 这是 From Java to Kotlin 第二期。 From Java to Kotlin 关键在于 **思维的转变**。 ......
Kotlin 类型 系统 From Java

Kotlin对Springboot的runApplication内联函数结构分析

# 主菜 ![](https://img2023.cnblogs.com/blog/1063429/202306/1063429-20230602150941307-1759003535.png) [括号外尾随Lambda](https://kotlinlang.org/docs/functions ......

Kotlin中的解构声明

###解构声明(Destructuring declarations) 解构声明可以用于将一个变量拆分成由其多个成员属性构成的组合来表示,例如: ``` class Person(var name: String?, var email: String?) { operator fun compon ......
Kotlin

Kotlin中的字符串模板

### 字符串模板的使用 在Kotlin中可以直接在字符串字面值中引用变量,例如: ``` val name = "william" val str = "my name is ${name}" println(str) ``` 并且Kotlin官方文档建议使用字符串模板来替代字符串连接符的使用,原 ......
字符串 字符 模板 Kotlin

Kotlin中的Any、Unit、Nothing

### Any Kotlin中的*Any*即相当于Java中的**Object**类,是一切其他非空类型的父类型,**Any?**则表示一切可空类型的父类型。 *Any*拥有三个方法: - equals() - hashCode() - toString() 事实上Any在编译成字节码后正是会转成* ......
Nothing Kotlin Unit Any

Kotlin的空安全

###Kotlin中的可空类型 在Kotlin中可以通过在类型后加一个**?**来表示该类型是可空类型,例如: ``` var name : String? var id: String ``` 上述代码表示*name*是一个可空的*String*类型变量,而**id**是一个不可为空的*Strin ......
Kotlin

使用Kotlin协程实现python的generator功能

一、要实现python的generator功能,首先要看下该generator是怎样的调用,如下的调用示例: fun testGenerator() { val generator = generator<Int> { println("generator $it") yield(10) yield ......
generator 功能 Kotlin python

Kotlin中的扩展函数和扩展属性

###扩展函数 Kotlin中可以给一个类额外添加这个类中没有的函数,即扩展函数。例如: ``` fun Int.dp2px(context: Context) { TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, this.toFloat ......
函数 属性 Kotlin

android开发java.lang.NoClassDefFoundError: org/jetbrains/kotlin/cli/common/PropertiesKt解决方法

问题:编译Android项目出现java.lang.NoClassDefFoundError: org/jetbrains/kotlin/cli/common/PropertiesKt 原因:项目使用发JDK版本和Kotlin版本不一致或者说不对应导致gradle找不到对应的类 解决方法:我的解决方 ......

Gradle 使用 Kotlin 的情况下设置使用 UTF-8

找了好久才找到该怎么整,在此记录一下 ### 原本的样子 Groovy 下设置 UTF-8: ```Groovy tasks.withType(JavaCompile) { options.encoding = "UTF-8" } ``` ### 但是现在改了,食大便了 Kotlin 下设置 UTF ......
情况 Gradle Kotlin

From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

Kotlin 是一种静态类型的编程语言,由 JetBrains 开发。它可以编译成 Java 字节码,也可以编译成 JavaScript 代码。Kotlin 具有现代化的语法和功能,可以与 Java 互操作,并且可以在 Android 开发中使用。 Kotlin 的语法简洁、易读、易写,具有许多现代... ......
函数 Kotlin Lambda From Java

Kotlin中的lateinit、lazy

###lateinit *lateinit* 关键字用来修饰一个类的非空成员变量,表示该成员变量的值在稍后合适的时机会初始化,例如: ``` class Test { lateinit var name: String fun test() { if (::name.isInitialized) { ......
lateinit Kotlin lazy

Kotlin难点

[toc] # 高阶函数 高阶函数是将函数用作参数或返回值的函数,还可以把函数赋值给一个变量。 所有函数类型都有一个圆括号括起来的参数类型列表以及一个返回类型:(A, B) -> C 表示接受类型分别为 A 与 B 两个参数并返回一个 C 类型值的函数类型。 参数类型列表可以为空,如 () -> A ......
难点 Kotlin

Kotlin学习 03 Stream 简化版的操作

Stream 操作 Java 和 Kotlin 的对比 先写一个数据类 /** * @Description : 数据类 * @Date :2023/5/25 * @Author :Liu Siyuan * @Project : kotlinLearning * @Version 1.0.0 */ ......
Kotlin Stream 03

Kotlin学习 02

在前一次只能选择省份简称的基础上,增加了输入车牌号码的交互 这次主要是自己动手写代码实现: 1、动态生成7位的车牌输入框EditText 2、省份是选择的,车牌号是手动输入的 3、点击清除实现了最后一位的删除,并自动将焦点移动到前面框中 自己实现一些功能之后,确实发现kotlin能剩下很多代码,可读 ......
Kotlin 02

【客户端学习】Kotlin 协程的基本概念及用法

# 协程是什么? 协程是一种编程思想,并不局限于特定的语言。除 Kotlin 以外,其他的一些语言,如 Go、Python 等都可以在语言层面上实现协程。 Kotlin Coroutine 本质上是 Kotlin 官方提供的一套线程封装 API,其设计初衷是为了解决并发问题,让「协作式多任务」实现起 ......
客户端 客户 Kotlin

Kotlin中的无符号数据类型

### 无符号数据类型 Kotlin支持了几种常见的无符号整型,如下表所示: |数据类型|数据大小|取值范围| | | | | |UByte|1字节|0 ~ 255| |UShort|2字节|0 ~ 65535| |UInt|4字节|0~ 2^32-1| |ULong|8字节|0 ~ 2^64-1| ......
符号 类型 数据 Kotlin

Kotlin学习 01

之前因为工作没有转型kotlin的必要,并且一些杂事较多,一直没有好好深入学习kotlin。现在放眼看去,kotlin已经是统治地位了,不会kotlin,真不好意思说自己会做安卓开发。 非常遗憾,现在重新开始,我任是一个爱学新技术的追风少年。 我的学习方法是: 看语法讲解 看代码 修改代码或者自己实 ......
Kotlin 01

From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

Kotlin 是什么? 可以做什么? Android 官方开发语言从Java变为Kotlin,Java 有哪些问题? Kotlin的优点 Kotlin 特性(Features) ......
函数 Kotlin Lambda From Java

From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

From Java To Kotlin, 空安全、扩展、函数、Lambda 概述(Summarize) * • Kotlin 是什么? * • 可以做什么? * • Android 官方开发语言从Java变为Kotlin,Java 有哪些问题? * • Kotlin的优点 * • Kotlin 特性 ......
函数 Kotlin Lambda From Java

Kotlin源码分析

Compiler目录 cli src下面的是命令行下的编译入口,包括了jvm,重点是K2JVMCompiler执行编译过程和命令行接口 CLITool |--CLICompiler |--K2JSCompiler |--K2JsIrComiler |--K2JVMCompiler |--K2Meta ......
源码 Kotlin

当我再次用Kotlin完成五年前已经通过Kotlin完成的项目后

> 近日来对Kotlin的使用频率越来越高, 也对自己近年来写过的Kotlin代码尝试进行一个简单的整理. 翻到了自己五年前第一次使用Kotlin来完成的一个项目([贝塞尔曲线](https://juejin.cn/post/6844903556173004807)), 一时兴起, 又用发展到现在的 ......
Kotlin 年前 再次 项目

Kotlin协程的优点

Kotlin协程的优点包括: 轻量级:协程比线程更轻量级,可以在同一时间创建数以万计的协程而不会影响性能。 代码简洁:协程使得异步代码更加简洁和易于理解,避免了回调地狱的问题。 异常处理:协程提供了一种结构化的并发错误处理方式,使得异常处理更加简单和可预测。 可取消性:协程提供了简单的取消机制,可以 ......
优点 Kotlin

当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么?

自从2019年Google推荐Kotlin为Android开发的首选语言以来已经经历了将近四年的时间, Compose的1.0版本也发布了将近2年的时间, Kotlin+Compose在现阶段的Android开发过程中还远远达不到主流的程度. 我们是否应该开始尝试这个组合? 这个组合有会给我们带来什... ......
第一次 Compose Kotlin Canvas

Kotlin基础入门 - 创建、兼容一个属于自己的Kotlin项目

这应该是我年前就想记录的一个基础入门,但是因为一直比较忙,当时只是做了一个备忘草稿,正文就拖到了现在,趁着有时间,赶紧来帮助一下新入行的朋友… 关于为何我把这篇Blog叫做 创建、兼容一个属于自己的Kotlin项目? 主要是因为在实际开发中会遇到以下俩种项目场景 > < 从0 - 1 的Kotlin ......
Kotlin 基础 项目

Kotlin基础认知 - 为何Kotlin文件有的带.kt后缀,有的不带?

有一天看到项目中的Kotlin类,有的有.kt后缀,有的没有,针对这个情况我就简单看了下,然后记录一波 创建 Kotlin Class 或 Kotlin File 创建Kotlin class 创建Kotlin File 俩者区别 展现形式 外部展现 内部展现 延伸扩展、对向转换 Class无后缀 ......
Kotlin 后缀 文件 基础 kt

Kotlin进阶指南 - 单元测试

为了减少一些功能繁琐的测试流程,单元测试是提升开发效率的有效方式之一 在早些年的时候我有记录过一篇 Android 使用单元测试,只不过当时更多的针对 Java 方面的单元测试;在使用 Kotlin 后,我发现单元测试有点不同,好像又没什么改变,故此直接记录一篇 针对Java、Kotlin 都可以使 ......
单元 指南 Kotlin

Kotlin基础入门 - 变量、函数(方法)、对象、继承、接口

虽然之前用了Kotlin一段时间,但是回头看竟然没有做这方面的笔记,索性系统记录一下 基础过度 Kotlin基础入门 - 变量、函数(方法)、对象、继承、接口 Kotlin基础入门 - 静态变量、常量 And 静态函数、方法- Kotlin实战基础 - 设置点击事件、Activity跳转、传值 Ko ......
变量 函数 接口 对象 基础

Android结构优化 - Java、Kotlin项目结构分包

随着Android中 Java、Kotlin 的混编开发场景越来越多,其中大多人都会将 java文件 和 kt文件 放在同一个资源文件夹下,在项目越来越大的情况下,我们进行代码查询、项目重构、优化都不太便捷,所以本篇主要记录通过 kotlin分包、java分包 来区分、整合 java类和kotlin ......
结构 Android 项目 Kotlin Java

Kotlin基础入门 - 静态变量、常量 And 静态函数、方法

在 Kotlin 中使用静态的方式不止一种,嗯... 大约有3 - 4种,具体采用哪种方式,还需要自己根据场景选择了~ Java 基础认知 常规方法 静态方法 Kotlin 静态变量、常量、函数 单例 Object 伴生 companion object 顶层类 顶层方法 注解 @JvmStatic ......
静态 常量 变量 函数 基础