1.Kotlin簡介Kotlin 是一个用于现代多平台应用的静态编程语言,Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于I
今日目标使用表达式静态方法使用命名参数替代setter使用apply()处理可空对象使用as替代is快速创建JSON使用表达式通过使用Lambda表达式,我们可以减少很多的代码量,同时也会牺牲可读性,但是我们还是鼓励使用表达式举个栗子:fun getDefaultLocale(deliveryArea: String): Locale {
val deliverAreaLower = de
letpublic inline fun <T, R> T.let(block: (T) -> R): Rlet函数是参数化类型 T 的扩展函数。在let块内可以通过 it 指代该对象。返回值为let块的最后一行或指定return表达式。我们以一个Book对象为例,类中包含Book的name和price,如下:class Book() {
var name =
函数函数声明在 kotlin 中用关键字 fun 声明函数:fun double(x: Int): Int { }函数用法通过传统的方法调用函数val result = double(2)通过 . 调用成员函数Sample().foo() // 创建Sample类的实例,调用foo方法参数函数参数是用 Pascal 符号定义的 name:type。参数之间用逗号隔开,每个参数必 须指明类型。fun
转载
2024-08-02 18:45:41
36阅读
内置函数的总结: let: 1.let函数返回类型,是根据匿名函数最后一行的变化而变化 2.let函数的匿名函数里持有的是it == 集合本身 apply: 1.apply函数返回以及返回类型,一直都是info,如果是aaa,则需要时aaa.length() 2.apply函数的 匿名函数里持有的是this == info本身 run:1.run
转载
2024-01-17 07:09:46
79阅读
一、apply:例如在初始化paint时,可以用apply,作用在自己身上://apply返回值是它本身,谁调用他他就返回谁this
var paint = Paint().apply {
isAntiAlias = true
isDither = true
style = Paint.Style.FILL_AND_STROKE
转载
2024-10-14 11:26:46
98阅读
Kotlin(一)掌握基础知识:数据、集合、库函数Kotlin(二)掌握基础知识:字符串和异常处理Kotlin(三)掌握基础知识:类 线程是每一种语音不可能绕开的知识点,这章我们就来仔细看下Kotlin中如何使用线程,我们仔细看下Thread.kt文件的实现package kotlin.concurrent
public fun thread(
start: Boolean = tru
转载
2023-12-08 11:07:47
195阅读
在理解这些函数之前,先从源码中摘抄出相关的代码, 放在一起,方便比较,总结规律(省略了函数的注解和部分代码, 不影响理解,了解这些代码的可以略过)public inline fun <T, R> T.let(block: (T) -> R): R = block(this)public inline fun <T, R> T.run(block: T.() ->
转载
2024-06-15 04:44:53
53阅读
我最初打算写这篇文章是因为我在玩一些反射代码,并认为自己发现了一些有趣的东西。 las,绝对不是这样。 相反,它只是Kotlin的基本功能,我不需要使用或关注。 尽管这篇文章并没有表明我希望的样子,但是我仍然认为这是一篇不错的小文章,可以使这个主题更加清晰。 在Java中,存在基本类型及其包装版本的概念。 由于自动装箱和拆箱,类型可以在其原始版本和包装版本之间互换。 换句话说,在大多数情况下,
转载
2024-06-15 16:51:49
38阅读
# 如何实现“id 'kotlin-android'” - 一位小白的指南
## 引言
作为一名经验丰富的开发者,我很高兴能帮助你解决问题。在这篇文章中,我将向你解释如何实现“id 'kotlin-android'”,并提供详细的步骤和代码示例。这将帮助你更好地理解整个过程。
## 整体流程
下面是实现“id 'kotlin-android'”的整体步骤:
```mermaid
pie
原创
2023-08-21 08:09:11
152阅读
1、数据存储读取文件 2、SharedPreferences 3、SharedPreferences简化 4、泛型的基本用法 5、类委托和委托属性 6、依靠委托自己实现个lazy1、数据存储读取文件 fun saveString(context: Context, str: String) {
try {
val fileOutput = context.open
转载
2023-11-27 13:08:17
171阅读
概述分析Kotlin的 Standard.kt 代码,主要分为三部分:
run、with、let、also、apply 的比较
takeIf、takeUnless、repeat 的使用异常类的使用一、run、with、let、also、apply 的比较所有的总结都源自于代码,所以最终还是要回到代码中找到答案。示例1. run()/**
* Calls the specified functio
转载
2024-07-17 16:21:52
35阅读
Kotlin 杂谈之 setOnClickListener 为什么可以简写成 Lambda先上代码://例1
//java里定义的一个接口
public interface OnClickListener {
void onClick(View v);
}
//kotlin调用
view.setOnClickListener { //do
转载
2024-06-25 20:47:48
41阅读
跨平台还能怎么玩?试试 Kotlin Multiplatform Mobile前言说到跨平台,我们很容易联想到 ReactNative、Flutter 等业内比较有名的框架,通过在不同平台复用一套代码,从而提高生产力,同时保证各端逻辑的一致性,他们确实做到了。但是,目前的跨平台框架都无法做到完美复用,比如双端 UI 上的差异,导致还需要写很多适配代码,还有一个比较核心的问题,无法媲美原生性能。简介
转载
2024-01-24 20:22:31
46阅读
# Android Kotlin布局id导入问题解决指南
## 引言
在Android开发中,布局文件(layout file)是定义用户界面的XML文件。每个视图(View)在布局文件中都有一个唯一的id,用于在代码中引用和操作该视图。然而,有时候我们可能会遇到一个问题:无法导入布局文件中的id。本文将为刚入行的Android开发者提供一个解决该问题的指南。
## 解决步骤
下面是解决An
原创
2024-01-19 03:31:35
159阅读
今天来看看Kotlin中关于lambda的两个函数with和apply,我们将其称为带接收者的lambda,不了解为什么会这么命令,看完下面的实例你应该就可以理解了。注意,上面也已经说了,with和apply其实是两个函数,虽然它们看起来像是关键字。with函数简单使用我们在Java中经常会写下面这样的代码:public String getRes() {
StringBuilder re
1.前置知识在Kotlin中,函数是一等公民,它也是有自己的类型的。比如()->Unit,函数类型是可以被存储在变量中的。Kotlin中的函数类型形如:()->Unit、(Int,Int)->String、Int.(String)->String等。它们有参数和返回值。最后一个Int.(String)->String比较奇怪,它表示函数类型可以有一个额外的接收者类型
1.延迟初始化属性// Kotlin可以对属性设置为延迟初始化
lateinit var dept: Department提示: 延迟初始化属性要求:不能是可空类型;只能使用为var声明;lateinit关键字应该放在var之前。2. 委托属性Kotlin提供一种委托属性,使用by关键字声明class User {
var name: String by Delegate()
转载
2024-09-13 21:36:19
27阅读
/ 前言 /
这是一个带弧形的进度条,其实这个控件很久之前已经实现了,但是我想用Kotlin去重写优化一遍,并且对此铺开来讲解。
项目的Github地址:
https://github.com/TanJiaJunBeyond/Circula
一、Kotlin中类的继承在Java中,类基于Object,而在Kotlin中类基于Any,所有类都默认继承Any。kotlin中的类默认是final类型的,不可被继承,想要作为基类被继承必须使用open关键字修饰。对于没有超类型声明的类默认超类是Any,Any类只有三个函数~package kotlin
public open class Any {
public open o