1.Flow流程中为什么是【冷】的先看一段Flow的使用代码:fun main() = runBlocking { flow { emit(0) emit(1) emit(2) emit(3) }.collect{ println("it:$it") } println("end")
        Kotlin 的 launch 会调用 startCoroutineCancellable(),接着又会调用 createCoroutineUnintercepted(),最终会调用编译器帮我们生成 SuspendLambda 实现类当中的 create() 方法。 public fun Co
转载 10月前
32阅读
在写数组的操作之前,首先来介绍一下快速枚举快速枚举:for( in );1.能快速的遍历数组等容器对象 2.都是对容器里的对象的遍历 3.( )内的第一个是数组内元素的类型,第二个是容器注意:为了增加代码的阅读性,避免不必要的错误,尽量让 for in 的前部分的类型和数组元素类型相同例子 :NSArray *arr =@[@"山", @"帅",@"赢",@"林"]; for
更多精彩:组件化开花,就问你香不香 架构师之路:重读设计模式《Head First 设计模式》 如何解决java开发痛点,让程序员happier google为何选择?如何解决java开发痛点【续】? 深入浅出,kotin Any类 深入:const 对话 val,有必要用const申明变量吗? 一分钟入门kotiln协程,线程切换 androi
转载 2023-10-05 22:35:38
3阅读
前言本文旨在通过实际业务场景阐述如何使用Kotlin Flow解决Android开发中的痛点问题,进而研究如何优雅地使用Flow以及纠正部分典型的使用误区。有关Flow的介绍及其操作符用法可以参考:异步流 - Kotlin 语言中文站,本文不做赘述。基于LiveData+ViewModel的MVVM架构在某些场景下(以横竖屏为典型)存在局限性,本文会顺势介绍适合Android开发的基于Flow/C
转载 2024-09-12 12:11:28
134阅读
简述: 今天我们开始接着原创系列文章,首先说下为什么不把这篇作为翻译篇呢?我看了下作者的原文,里面讲到的,这篇博客都会有所涉及。这篇文章将会带你全部弄懂Kotlin泛型中的reified实化类型参数,包括它的基本使用、源码原理、以及使用场景。有了上篇文章的介绍,相信大家对kotlin的reified实化类型参数有了一定认识和了解。那么这篇文章将会更加完整地梳理Kotlin的reified实化类型参
转载 10月前
8阅读
一、Android分层架构不管是早期的MVC、MVP,还是最新的MVVM和MVI架构,这些框架一直解决的都是一个数据流的问题。一个良好的数据流框架,每一层的职责是单一的。例如,我们可以在表现层(Presentation Layer)的基础上添加一个领域层(Domain Layer) 来保存业务逻辑,使用数据层(Data Layer)对上层屏蔽数据来源(数据可能来自远程服务,可能是本地数据库)。在A
转载 2023-12-22 20:13:25
75阅读
# Android Kotlin 字符串替换教程 ## 1. 简介 在Android开发中,经常需要对字符串进行替换操作。字符串替换是指将字符串中的特定字符或者字符串用其他字符或字符串替换掉。本教程将向你介绍如何使用Kotlin语言实现Android中的字符串替换操作。 ## 2. 流程图 ```mermaid flowchart TD A[开始] --> B[定义原始字符串]
原创 2023-10-15 05:42:30
197阅读
# 如何将Flutter创建的Kotlin项目替换Java 在Flutter开发中,有时你可能会需要将项目中使用的Kotlin代码替换Java代码。这可能是因为团队中的开发者更熟悉Java,或者是因特定包或库的兼容性问题。本文将详细介绍如何实现这一过程,适合刚入行的开发者,帮助你深入理解Flutter和Android应用开发的基础知识。 ## 整体流程概述 下表展示了将Flutter项目
原创 10月前
135阅读
Kotlin基础语法和API 字符串 字符串查找 str.first()str.last()str.indexOf()str.lastindexOf()字符串截取的区别 subString(3)subString(3,7)subString(IntRange(3,7))字符串的替换 subString.replace("Hello",'aaa') 替换
转载 2023-08-01 11:02:59
559阅读
# Android kotlin-android-extensions 替换方案 在 Android 开发中,我们经常使用`findViewById`方法来获取布局文件中的控件,并进行相应的操作。这种方式虽然简单直接,但是对于大型项目来说,代码量会逐渐增加,加大了开发的难度和维护的成本。为了简化这个过程,Google 推出了 `kotlin-android-extensions` 插件,通过在
原创 2023-08-30 09:43:14
1943阅读
格式化大括号当when分支和if语句体没有其他分支如else if/else时,可不需要大括号。if (string.isEmpty()) return when (value) { 0 -> return // … }对于任何分支如if、for、when分支,do和while语句,必须有大括号,即使当主体是空的或仅包含一条语句。if (string.isEmpty())
一、变量和方法变量Kotlin中定义一个变量,只允许在变量前声明两种关键字:val和var。val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋 值,对应Java中的final变量。var(variable的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新 赋值,对应Java中的非final变量。Kotlin 可以不需要定义类型,会自动推导
转载 9月前
27阅读
    在 Kotlin 中,有着几种基本类型:数字、字符、布尔值、数组与字符串。数字:Kotlin 对于数字的处理接近 Java,但又有不同。如:数字没有隐式拓宽转换。Kotlin 提供了如下的内置类型来表示数字:类型字节位Double864Float432Long864Int432Short216Byte18    在 Java 平台数字是物理存储为 J
转载 10月前
103阅读
Kotlin中调用JavaKotlin中可以使用java代码,而没有任何问题1、将 Kotlin 中是关键字的 Java 标识符进行转义 一些 Kotlin 关键字在 Java 中是有效标识符:in、 object、 is 等等。 如果一个 Java 库使用了 Kotlin 关键字作为方法,你仍然可以通过反引号()字符转义它来调用该方法: foo.is`(bar)2、空安全与平台类型 Java
转载 2023-07-26 19:55:03
98阅读
包括基本的互操作行为、SAM转换、正则表达式、集合框架、IO操作:[实际上用到i的还是 java的api,只不过要注意kotlin为我们提供了很多扩展方法]、装箱和拆箱、注解处理器。下面一一介绍:1.基本的互操作行为:1.属性读写:Kotlin自动识别 Java Getter/SetterJava操作Kotlin属性通过Getter/Setter 2. 空安全类型:Kotlin
If not nullval files = File("Test").listFiles()println(files?.size)If not null or elseval files = File("Test").listFile
转载 2021-03-12 22:35:53
195阅读
文章目录前言Kotlin互操作性总结参考文献 前言闲来无聊,和一个朋友聊天。 他突然问我:你知道KotlinJava为啥可以混合开发相互调用么? 我:???!!! 我:我还真没怎么想过,为啥呀? 他:你猜~ 我:呵呵哒。 他:[摊手] 我要是知道就不问你了。。。 我:哈哈,得了,一块探索吧。KotlinKotlin 到底是什么? 它本身就是一种针对Java平台的新编程语言。 Kotlin简洁、
转载 2023-08-16 12:36:46
53阅读
Kotlin基础语法定义变量var num:Int = 5可修改变量使用var只读变量,使用val预编译常量使用constconst val Max = 200 fun main() { var a: String = "hello" println(a) println(Max)rangerange(范围)1..3 的含义就是 大于等于1小于等于3,数学表示: [1 ,
转载 2024-02-09 21:33:35
61阅读
  写在前面 kotlinJava的对比:之前没有接触过kotlin,但是公司采用kotlin,所以抱着试试的态度看了看kotlinJava的不同,惊奇的发现有kotlin我还用Java干嘛(斜眼笑?)。不是说Java不好,而是说Java对于kotlin来说太“老”了,完全没有活力,比如Java8更新的知识部分语言特性,所以说更新上也是Java比较落后于kotlin,其次Java的大
转载 2023-07-17 17:17:23
112阅读
  • 1
  • 2
  • 3
  • 4
  • 5