kotlin专题

Kotlin高阶函数与Lambda表达式及内联函数的介绍

目录 1、高阶函数1.1、什么是高阶函数?1.1.1、不带返回值的高阶函数1.1.2、带参数且带返回值的高阶函数1.1.3、与一般的函数进行比较 1.2、如何使用?1.3、高阶函数有什么作用? 2、Lambda表达式2.1、什么是Lambda表达式?2.1.1、无参数的写法2.1.2、有参数的写法2.1.3、有参数且有返回值的写法 2.2、如何使用?2.3、Lambda表达式有什么作用? 3

android kotlin复习 Anonymous function 匿名函数

1、还是先上个图,新建kt: 2、代码: package com.jstonesoft.myapplication.testfun main(){val count = "helloworld".count()println(count);println("------------------------")var count2 = "helloworld".count(){it ==

android开发---Kotlin语言基础语法

目录 数据打印 变量 函数 程序逻辑控制   if  when 循环 数据打印 IDE采用的androidStudio 可自行官网下载 https://developer.android.google.cn/studio/archive?hl=zh-cn 新建项目 添加一个main方法,main()函数的左边出现了一个运行标志的小箭头。现在我们只要点击一下这个

Kotlin 范型之协变、逆变、不变

一. 前言 Kotlin 中类和类型是不一样的概念。型变是指类型转换后的继承关系。Kotlin 的型变分为逆变、协变和不变。 二. 协变 如果 A 是 B 的子类型,并且Generic<A> 也是 Generic<B> 的子类型,那么 Generic<T> 可以称之为一个协变类。 2.1Java 上界通配符<? extends T> Java 的协变通过上界通配符实现。 如果

Object-Android关键字,伴生对象,Kotlin静态

目录 1、定义一个类并生成它的单例对象 原理 调用方式 2、伴生对象(静态类) 原理 调用方式 3、对象表达式 Object在Android独特的前缀通常有以下三种用法: 1、定义一个类并生成它的单例对象 object Singleton{fun test(){}} 原理 其实就是Java的单例模式,Kotlin中提供object方便创建单例 public fi

Map排序与转换的深入探索:Java与Kotlin的实现与应用

更多内容:孔乙己大叔 1. Map的排序基础 Map是一种键值对(Key-Value Pair)集合,其中每个键都映射到一个唯一的值。然而,Map接口本身并不保证顺序,这取决于具体的实现。例如,HashMap在Java和Kotlin中都是无序的,而TreeMap和LinkedHashMap则提供了有序的Map实现。 1.1 TreeMap排序 TreeMap在Java和Kotlin中都是基

Kotlin 流 Flow

挂起函数可以异步地返回一个值,而对于返回多个值,可以使用流,使用 emit(x) 发射多个值, collect { } 来收集值。 默认 流是冷的,只有 收集(collect) 时才会执行。 1. 流的创建 flow {} 生成流,emit(x) 来发射值;xxx.asFlow() 集合转成Flow;flowOf(1, 2, 3) 生成固定值的流。 1.1 flow {} flow {}

从源码角度分析 Kotlin by lazy 的实现

by lazy 的作用 延迟属性(lazy properties) 是 Kotlin 标准库中的标准委托之一,可以通过 by lazy 来实现。 其中,lazy() 是一个函数,可以接受一个 Lambda 表达式作为参数,第一次调用时会执行 Lambda 表达式,以后调用该属性会返回之前的结果。 例如下面的代码: val str: String by lazy{println("aaron

基于Android Studio的用户行程记录APK开发指南(一):项目基础配置与速通Kotlin

前言 最近博主在unity开发独立游戏,UE5系列的相关长期教程先暂时不更新了~ 请大家多多谅解~本系列教程我们来看看如何使用Android Studio去开发一个APK用于用户的实时行程记录。本期我们来项目基础配置与速通Kotlin 安装Android Studio 我们进入Android Studio的官网,选择下载官网链接 下载后点击exe运行安装,这里我们要选择安卓虚拟设备

Android kotlin使用Netty网络框架实践(客户端、服务端)

开发工具:Android studio  语言:kotlin 设计原理:通讯协议:头+类型+长度+数据+尾,自定义编解码器,解析和包装发送数据流,以下贴出部分关键代码 说明:代码中封装了client和server端,可以点击按钮进行通讯,可以直接在项目中使用,尤其是处理了粘包和分包问题。 编译后的效果图: 注:结尾附上完整代码下载链接 1、配置build.gradle文件

Kotlin语法之隐藏的getter、setter

一、基本写法 我们在使用java定义实体类的时候,一般是这样写: public class Test {private String str;private int count;public String getStr() {return str;}public void setStr(String str) {this.str = str;}public int getCount() {re

Kotlin在AndroidStudio上的配置

早上上班不久,付总就告诉我,谷歌宣布,将Kotlin作为安卓开发的一级编程语言,关于这个语言怎么怎么好,和他的语法,在此也就不说了,附上几个链接,写的都挺好的:   使用Kotlin优雅的开发Android应用   Kotlin VS Java:基本语法差异   为什么我要改用Kotlin   这篇博客主要介绍Kotlin在AS上的配置,那么闲话少叙,开始吧。   在项目

算法:枚举法---kotlin

枚举法:效率低,循环所有的情况,找到正确答案 用于解决数学问题,还是很简单的。 比如,奥数里面: 算 法 描 述 题X题=题题题题题题 其中 算法描述题每一个为一个数字,请写出正确的数字。 ok,我们用枚举法去找出正确的答案 /*** Created by Administrator on 2017/10/19.*/fun main(args: Array<String>) {var

Kotlin 二分法算法游戏--猜价格

本人最新想学习算法,算法是提高程序性能的关键! 程序就是数据结构和算法! 写了一个二分法的游戏,供大家参考: 当然,语言基于kotlin import java.util.*/*** Created by Administrator on 2017/10/18.*/fun main(args: Array<String>) {// println("请输入商品真实价格")//

android kotlin基础复习—for while do...while

1、新建一个文件kt: 2、循环的几种用法: for while do ... while for: println("----for 使用-----")val items = listOf("apple", "banana", "kiwi")for (item in items) {println(item)}for (index in items.indices) {prin

Kotlin协程探究

What? 维基百科 协程是计算机程序的一类组件,推广了协作式多任务的子程序,允许执行被挂起与被恢复 自己的理解(要写出定义需要理解很深。理解不深,模糊一看哈) 协程是一种通过中断机制实现替代回调机制的子程序 Why? 和RxJava(不懂的请看之前写的Rxjava文章)比较的优点 使用协程能让代码更加简洁,极大避免回调方法避免了耗费资源的线程切换(核心优势呀) 缺点 较少的语言

【Android自定义控件】Kotlin实现滚动效果的数字加减控件

前言 因业务上的需要,在APP中点餐时要有商品数目增减操作,数目增减的过程中有翻动的动画效果展现。在Android中有多种方式可以实现,本篇文章记录通过自定义View结合控件的平移动画相结合来实现此需求。 需求分析 根据上图分析控件的实现过程以及使用到的API,要实现数目上下翻动的效果至少需要两个控件,所以要通过自定义ViewGroup来实现,数字的显示使用TextView控

android kotlin基础复习—if when

1、新建kt并运行 新建文件kt 运行文件kt 2、kotlin语句 if when的使用 var x = 5val y = 9if (x in 1..8) {println("x 在区间内")} 说明: var:定义变量 val定义常量。 代码中会看到那个<=,也就是说包括1,8。 3、输出 4、所有代码,可以测试: fun main(args: Arra

小白学习kotlin的一点点总结

最近看了「扔物线」大神的码上开学学习了一些kotlin的内容。特地总结进行留存 一、关于基础的空安全设计 空安全设计的小点总结: 核心的点在于:在语言层面,编译的过程中,保证了 变量在使用时不为空。 1.不可空变量定义时就要赋非空值 2.可空变量在使用时使用?.的形式进行调用 二、lamada表达式 在kotlin中,lamada表达式,甚至于方法均可以作为参数传递。而传递的过程中

Kotlin IntelliJ IDEA环境搭建

Kotlin IntelliJ IDEA环境搭建 IntelliJ IDEA 免费的社区版下载地址:https://www.jetbrains.com/idea/download/index.html 下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6+ 一起使用。  在右侧的下

【穿山甲系列】kotlin compose 出现的问题

推荐以下官方的接入教程,这个是单独的穿山甲,没有聚合功能 SDK工程配置及初始化说明-Android集成文档-开发测试-穿山甲广告平台 第一种问题,出现以下的问题内容时候,需要添加 android.enableJetifier=true Jetifier 是一个在 Android Gradle Plugin 3.2.0 及更高版本中引入的工具,它的作用是将旧的 Android 支持库(

kotlin项目报这种提示Please specify proper '-jvm-target' option

报错信息Cannot inline bytecode buit with JVM target 1.8 into bytecode that is being built with JVM target 1.6.Please specify proper '-jvm-target' option 解决方法: 在app目录下build.gradle文件里面添加 kotlinOptions{j

初涉Kotlin

kotlin官网链接: http://kotlinlang.org/  Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度可互操作,可以同时用在一个项目中。 按照JetBrains的说法,根据他们多年的Jav

使用Kotlin+协程+Flow+Retrofit+OkHttp搭建一套网络请求工具

文章目录 一、前言二、搭建Java工程1.打开Android Studio 建一个Android 工程2.修改该工程的build.gradle文件为Java 工程,并配置如下:3. 搭建一个 RetrofitUtils 请求工具类,这都是常规操作了,如下4.建一个 NetWorkAPi 作为 Retrofit 请求接口:5.建一个 WXRepository 为了和Android 里面保持一致

mybatis-plus中Swagger 模式和Kotlin 模式是什么?

在 MyBatis-Plus 中,Swagger 模式和 Kotlin 模式是为了支持特定技术栈和开发需求的两种配置选项。它们分别针对 API 文档生成和 Kotlin 语言提供了更好的支持和集成。 Swagger 模式 Swagger 模式主要用于生成 API 文档。在 MyBatis-Plus 中启用 Swagger 模式后,可以利用 Swagger 的注解和工具自动生成 RESTful

[译]探索Kotlin中隐藏的性能开销-Part 2

翻译说明: 原标题: Exploring Kotlin’s hidden costs — Part 2 原文地址: https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70 原文作者: Christophe Beyls 这是关于探索Kotlin中隐藏的性能开销的第2部分,如果你还没有看到