Kotlin入门——Kotlin学习笔记一、基本数据类型1. 变量2. 数字类型的自动推断3. kotlin中的区间4. 数组相关5. 字符串与字符串模板二、控制流三、返回跳转与标签四、类与对象1. 构造函数2. 继承3. 可见性4. 扩展函数 本博客仅供参考,有关kotlin基础语法的学习在官网有很详细的中文参考文档,附上链接传送门: Kotlin官网地址 一、基本数据类型1. 变量val:只
起因事情是这样的。4年前毕业那会,呆在公司的短视频项目,做 视频。那会做得比抖音还早,但是由于短视频太烧钱了,项目被公司关掉了。当时需要开发横竖屏直播/异步视频的场景,就研究下了市场上的 app,发现输入弹幕的交互并不友好。最直接的体验就是,微信比绝大部分IM软件在聊天场景下输入法与表情面板频繁切换时表现得更为平滑,不会给用户很突兀的闪烁感。但我们除了适配竖屏,们还需要兼容横屏/满屏/沉浸等场景。
近日,欧洲议会和欧洲理事会一致同意,将自2024年秋天起在欧盟境内统一使用Type-C接口用于移动设备充电。此举被认为将有利于减少电子垃圾,也让用户在购买移动设备时更加简易方便。/   作者简介   /本篇文章来自Vincent的投稿,文章主要分享了如何使用Kotlin Flow对Retrofit进行无缝衔接,相信会对大家有所帮助!同时也感谢作者贡献的精彩文
转载 2023-12-18 21:19:57
157阅读
前段时间学习了一点内容,写了一篇Groovy开发工具包。我当时就在想Kotlin怎么没有好用的文件操作API呢?后来我发现我太傻了,Kotlin这么好用的语言怎么可能没有自己的文件API呢?Kotlin的IO操作都在kotlin.io包下。Kotlin的原则就是Java有的就直接利用,没有的才自己想办法写。因此Kotlin的IO操作主要是依靠扩展方法,在原有的Java类上添加功能实现的。这一点倒是
  内容简介 本书分为3篇:第一篇,基础语法篇,主要讲解*基础的面向过程式语法;第二篇,面向对象篇,详解Kotlin的面向对象;第三篇,Kotlin 安卓开发篇,主要讲解开发工具Android Studio的使用、UI常用组件和Kotlin开发框架Anko的应用,且以两个小实战展示Kotlin在安卓平台的实际开发能力。 作者简介 张云波,昵称小波,网络知名讲师,《小波说雨燕》
转载 2023-12-12 15:22:29
46阅读
Google在今年的IO大会上宣布,将Kotlin作为Android开发的一级语言。作为紧跟潮流的弄潮儿,对kotlin稍做了解后,发现其有优秀的特性,所以就开始了学习,而Eyepetizer-in-Kotlin便是对kotlin进行学习后的阶段性成果。一、screenshot1.启动界面 2.主界面 3.视频界面 4.搜索界面 5.缓存界面 Github地址:Eyepetizer-in
转载 2024-09-23 11:03:45
107阅读
1、标准函数标准函数是指Standard.kt文件中定义的函数1.1、let函数let函数提供了函数式API编程接口,并将原始对象作为参数传递到Lambda表达式中,标准的写法如下:obj.let { obj1->需要执行的逻辑 }obj1就是obj对象这里写成obj1只是为了防止命名重复的问题,使用的场景如下:fun doStudy(study: S
转载 2023-12-18 20:36:18
63阅读
文章目录一、数据类型1.1、基本数据类型定义1.2、模板操作符1.3、类和对象初始化1.4、空类型和智能类型转换1.5、数字类型转换二、数组2.1、定义方式2.2、数组处理方法2.2.1、slice用法2.2.2、String接收字符串数组初始化2.2.3、遍历2.2.4、解构语法三、程序结构3.1、常量与变量(val,var)3.1.1、介绍3.1.2、延迟初始化3.1.3、不建议var cc
目前正在做一个视频相关的项目,里面有个需求是:安卓手机端需要随时可以录制视频,时间可能是几分钟或者几个小时,然后录制的适配需要传到服务器上。如何录制这里暂时不说,我们主要研究一个如何上传的问题。按照用户的需求,视频的分辨率要达到720p,最大码率设定为2.5Mbps,这样一分钟的大小大概是20MB左右,一个小时在1200MB。如果直接上传1200M的文件,肯定会存在:上传端、接收端需要消耗大量内存
转载 2023-06-09 10:14:54
359阅读
# 在 Android 中使用 Kotlin 读写文件指南 在 Android 开发中,处理文件是一个常见的需求,尤其是当你需要保存用户数据或缓存信息时。本篇文章将详细介绍如何在 Android 应用中使用 Kotlin 来读写文件。我们将逐步进行,从基本的文件操作到实际的代码实现。 ## 整体流程 下面是我们将要遵循的步骤的概述: | 步骤 | 描述
原创 2024-10-07 04:22:22
108阅读
基本类型在 Kotlin 中,所有东西都是对象,在这个意义上讲所以我们可以在任何变量上调用成员函数和属性。有些类型是内置的,因为他们的实现是优化过的。但是用户看起来他们就像普通的类。本节我们会描述大多数这些类型:数字、字符、布尔和数组。数字Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于数字没有隐式拓宽转换(如 Java 中 int 可以隐式转换为 long ——译者
转载 2023-10-20 12:22:34
66阅读
abstract class AbsClass{ abstract void absMethod() open protected void overrideMethod(){} void nonOverridable(){} //正常的方法默认不允许被覆写 } 抽象类的继承,java与kotlin对比,如下所示: //java 实现继承以及实现接口 public class SimpleClas
hi,各位亲:   这章主要讲Kotlin中集合的使用在android开发中90%的集合使用到了上图中的这些集合,那么在Kotlin中是如何使用的呢? 一.List集合:1.listOf()只读集合:// listOf就是只读的list集合,不能动态add元素,只能在初始化的时候赋值 fun testReadList() { var readList =
# 如何在 Android 中使用 Kotlin 读取文件Android 开发中,读取文件是一个常见的任务。本文将带领你一步步实现如何在 Android 中使用 Kotlin 读取文件。这份指南将从基本的流程开始,逐步深入代码的细节,并确保你在阅读时能轻松理解每一个步骤。 ## 目录 1. 文件读取流程 2. 逐步实现 - 1. 添加权限 - 2. 创建文件 - 3.
原创 9月前
374阅读
泛型与 Java 类似,Kotlin 中的类也可以有类型参数:class Box<T>(t: T) { var value = t }一般来说,要创建这样类的实例,我们需要提供类型参数:val box: Box<Int> = Box<Int>(1)但是如果类型参数可以推断出来,例如从构造函数的参数或者从其他途径,允许省略类型参数:val box = Bo
2. 属性  java中在包下面有类、接口等,而Kotlin中在包下面是可以直接有属性的,并且所有非抽象都强制要求初始化,没有初始化的属性无法通过变异(除标记为lateinit var的属性外)a.声明  用var声明可变,用val声明不可变   在Kotlin中完整的声明格式:var name: String = ""//初始化不能为null,如果需要赋值为null类型初始化为string?
转载 2024-03-07 20:41:20
74阅读
Kotlin 文件工具类沙盒内文件和图像的读写和删除。Context 使用 应用全局上下文 ApplicationContext,在示例代码中为顶层属性 appContext获取 应用全局上下文 ApplicationContext 的方法代码 package com.example.fileio.util import android.graphics.Bitmap imp
转载 2024-04-22 10:16:36
168阅读
/   基础概念   /今天我们来聊聊Kotlin的协程Coroutine。如果你已经接触过协程,相信你都有过以下几个疑问:协程到底是个什么东西?协程的suspend有什么作用,工作原理是怎样的?协程中的一些关键名称(例如:Job、Coroutine、Dispatcher、CoroutineContext与CoroutineScope)它们之间到底是怎么样的
前言在前面的文章中,已经讲解了Kotlin基础相关的知识点。从这一篇开始,将开始对Kotlin对应的协程进行详解!话不多说,直接开始!1、Kotlin基本使用class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCrea
转载 2023-11-18 20:04:29
180阅读
在开发中曾经遇到一个问题,前端界面需要往后台CRM上传文字和图片,实现方法主要分三步:一:上传数据的接口参数当后台确定了上传时需要接收的参数后,你需要做的是用类似键值对的方式给它传递value值,如下:MultipartEntity entity = new MultipartEntity(); try { entity.addPart("sourc
  • 1
  • 2
  • 3
  • 4
  • 5