kotlin学习笔记

Android-使用Kotlin属性委托实现的基于文件的Key-Value持久化工具 使用 Kotlin 属性委托实现的基于文件的 Key-Value 持久化工具 立即下载

kotlin学习笔记

基本知识

  • 常量定义:val 常量名
  • 变量定义:var 变量名
  • 变量定义时加上数据类型,var 变量名:数据类型,由于kotlin有类型推断,所以类型可以省略不写。例如:var a:Int=5
  • 将变量插入文字中,print(“我的名字是 username"),通过使用 {}的形式插入。
  • kotlin中默认的浮点型是Double(双精度),大多数情况下不使用Float类型
  • 类型安全:变量一旦定义,其类型不可更改。即不能给变量一个类型不同的值
  • 元组(Tuple),给多个变量同时赋值,分二元(Pair)和三元(Triple)。例如:var (day,month,year)=Triple(28,3,2017)
  • 可空类型:在kotlin中都是空类型安全的,所有变量默认被修饰为不可为null,必须显示在类型后添加”?”修饰符才可赋值为null。形式:var 变量:类型?
  • 类型判断is,例如:(c is String)
  • 强制转换:as,安全转换:as?

字符串

  • 字符串用”“包裹,isEmpty()判断是否为空,count()获取数量,toCharArray()将字符串转为字符数组
  • 字符用’ ‘包裹,isDigit()判断是否为数字,isLetter()判断是否为文字
  • 字符串或字符的相连使用+

数组

  • Array:Array(计数,{默认值})或arrayOf(元素1,元素2,元素3,元素n),大小固定,元素类型不可变。
  • 创建1-10的数组,Array(10,{i -> i+1})
  • 数组中元素计数:count(),空否:isEmpty(),获取其中的元素:数组名[索引],首元素:数组名.first,尾元素:数组名.last,获取前五个元素的快捷方法:component1到5
  • 获取筛选重复元素后的数组:数组名.distinct()或用 数组名.toSet()转换为Set
  • 切割数组:数组名.sliceArray()
  • mutableList:MutableList<类型>或mutableListOf(“元素一”,”元素二”),大小可变,类型不可变。在末尾添加元素add()方法,添加一个数组addAll()方法。移除元素remove(“元素”),移除指定元素removeAt(索引)

集合Set

  • set特点是无序不重复
  • Set<类型>或setOf(“元素1”,”元素2”,”元素n”)
  • 元素计数:count(),空否:isEmpty()
  • 检查是否包含某个元素:contains(),包含另一个Set:containsAll()
  • 转化为数组:toTypedArrray()
  • 集合之间的加减乘除运算:intersect/subtract/union/minus(补集的被操作对象无须是Set类型)
  • 转换为可变:toMutableSet
  • MutableSet<类型>或mutableSetOf(元素1,元素2,元素3,…元素n),大小可变,类型不可变。在末尾增加元素:add()方法,添加另一个集合,addAll()方法。移出元素:remove(),移出另一个集合:removeAll()。

集合Map

  • 无序可重复,类似字典
  • 主要属性keys,values
  • mapOf< key,value>(Pair(key,value),…)显示指定类型,可防止初始化值类型的错误。
  • 元素计数:size(),空否:isEmpty()
  • 获取某个key对应的value:get(),获取某个key对应的值当不存在时有默认值getOrDefault()
  • 获取所有的key:集合.keys,获取所有的value:集合.values
  • 转换为可变:集合.toMutableMap()
  • 添加或更新:下标方法 map变量名[key]=value
  • 移除元素:remove()函数

函数

  • 函数定义:fun 函数名(参数1:数据类型,参数2:数据类型): 返回类型{return 值;}
  • 可变参数修饰符:varary
  • 高阶函数:参数或返回值的类型是函数型
  • 函数型:(参数)->返回值
  • lambda:一种无名函数的简写{(参数)->函数执行语句}其他语言称必包,即有能力访问其自身范围外的变量。

类

  • class 类名 constructor(属性列表){更多属性和方法描述}
  • 类的继承:class 类名(属性列表):父类名(属性列表){}
  • 类的实例化:val 变量名=类名(属性)
  • 类的属性与变量定义相似
  • 组合属性,有其他属性计算而来(get)
  • 组合属性可以影响其他属性(set),this代表实例
  • 属性覆盖:override
  • 方法定义:fun 方法名(){}
  • 方法覆盖:override
  • 可见性修饰符:设定类本身及其属性,方法,构造器以及接口和对象的对外访问权限,即“可见性”。private:私有,仅当前类可见,最小的可见性。protected:保护,仅子类可见。internal:内部,当前模块内可见。public:公开,默认对外完全可见。
  • 嵌套类,与主类关系并不是十分密切,只是一个形式上的合作,主从关系
  • 内部类:inner class 类名,通常用于不直接对外的类,为主类服务的。内部类可以访问主类的属性
  • 数据类:专用于只保存数据的类,kotlin数据类:data class 类名(属性列表),数据类序列化:数据类.toString(),数据类的克隆:数据类.copy(属性重新赋值)
  • 枚举类:有限个类型的枚举,其中的每一个称之为枚举常量(可带初始值),每一个以逗号分隔,定义:enum class 类型{枚举常量(值),枚举常量(值),….,枚举常量n(值)},枚举类也可像普通类一样带构造器。

异常

  • 捕获异常try{}catch(e:Exception){},也可以将其赋值给一个变量。

接口

  • interface 接口名{//各种属性或方法定义}
  • 接口中的方法可以有默认实现,即接口的方法中可以有内容。

泛型

  • 一般用于函数的参数类型定义,让函数更通用。
  • 定义函数:fun<类型占位符> 函数名(参数名:类型占位符){}
  • 泛型约束:<泛型占位符:类型>
其他详情请参考Kotlin官方中文网站:https://www.kotlincn.net/
阿里云大模型 ACP 认证教材内容突变?这些改动藏着通关密码,不看亏大! 【摘要】核心章节大换血,安全合规融入实战场景,大模型微调用数学深度解析,部署章节带来阿里云产品对比实战攻略,甚至整章内容被替换成藏满学习彩蛋的行业趋势指南。这些改动不仅重塑考试重点,更暗藏官方命题风向——安全合规考场景方案,微调原理考几何解析,部署设计考分析框架。无论你是数学小白还是部署新手,这篇攻略都将带你吃透变动逻辑,附赠急救包和考点清单,帮你抓住这些“隐形加分项”,速来解锁通关秘籍! 阅读详情

相关推荐

Surface Go 2 变身 Linux 开发本:保姆级 Ubuntu 20.04 双系统安装与驱动配置全攻略

本文详细介绍了如何将 Surface Go 2 变身为高效的 Linux 开发本,涵盖 Ubuntu 20.04 双系统安装、专用内核配置、驱动优化等全流程。通过 linux-surface 内核安装和硬件驱动优化,确保 Surface Go 2 的触控、笔输入、摄像头等功能完美运行,适合开发者打造便携生产力工具。

weixin_30596165的博客 616

【无标题】

kotlin下通过value获取key

qq_40469520的博客 857

NVIDIA Tao Toolkit环境配置踩坑

请搭配食用该文章为 Tao 安装中可能出现的问题进行解答,如果存在本文章中没出现的问题,欢迎提问,由我复现后更新文章。由于大部分云服务器厂商不能支持 docker,因此我使用的环境为2023年5月27日在平台租的 3080 旧版环境进行实验。

qq_36630208的博客 771

【Android】Kotlin中对Map的key或者value数据的遍历

真TM绝了,有些东西真是不记下来,哪天急用了就是找不着,哎… //首先创建一个Map val map = mutableMapOf<String, String>() //加一点数据 map["电视"]=1 map["电脑"]=2 map["风扇"]=3 //遍历map的key值或者value值 //遍历key值 val strList = mutableListOf<String>() val iterator = companyMap.keys.iterator() w

每天不是在写bug就是在写bug的路上 4394

LVGL项目内存告急?试试把中文字库放到SD卡里(基于LvglFontTool V0.5)

本文详细介绍了在LVGL嵌入式项目中如何通过将中文字库存储到SD卡来优化内存使用。针对Flash资源有限的MCU,如STM32F103,提供了基于LvglFontTool V0.5的外部字库生成与动态加载方案,适用于多字号、多语言及OTA场景,显著减少固件体积并提升显示灵活性。

weixin_33726318的博客 456

2025 年第十五届 APMCM 亚太地区大学生数学建模竞赛A题 农业灌溉系统优化

该摘要探讨了农业灌溉系统优化面临的复杂挑战,涉及智能灌溉技术的应用与资源配置问题。研究聚焦于一个1公顷的方形农场案例,该农场种植三种作物并面临动态环境条件(土壤类型、气象变化)。系统优化需平衡河流引水(非线性成本函数:C=50L^1.2+0.1Q^1.5)与储水罐灌溉(成本5元/升容积)两种方案,同时满足喷灌技术约束(喷头间距≥15米,覆盖半径15米)。关键矛盾体现在"平河旱储"的水资源调配策略与多作物需水量差异之间的协调,需通过传感器数据实时调整灌溉方案以实现效率最大化。(149字)

m0_60472361的博客 641

Kotlin进行数据存储

Kotlin与Android的数据持久化操作 《Kotlin从0基础到精通Android开发》学习笔记(与Java对比): 学习目标: 关于Kotlin与Android的数据持久化操作,我们需要 学会利用工具类Preference进行数据共享参数的键值对管理工作、并掌握委托属性、lazy修饰符、with函数的基本用法。 学会使用Kotlin的ManagedSQLiteOpenHelper工具进...

手写我对你的温柔 5517

华为OD机试新系统真题-谁没交卷(Java /Py/C++/Go/C/Js)

华为OD机试 新系统真题【谁没交卷】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【谁没交卷】多语言题解。

qq_45776114的博客 417

Kotlin 使用Map实现一个上下文的Key/Value类

编写QQ机器人的时候,为了方便同一个 QQ ID 的机器人访问同一个 Map就需要一个,能够存入任何类型,取出的时候又能取出特定类型的MAP并且在特殊的时候能够获取最后是哪个代码位置对某个Key进行了修改以此来方便进行Debug。

子墨的日常 436

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6128

保研考研机试攻略:第一章——从零开始

🧊保研考研机试攻略:第一章——从零开始

qq_63349644的博客 1321

Kotlin学习笔记

Kotlin学习笔记

qq_40783389的博客 318

代谢组数据分析(十五):基于python语言构建PLS-DA分类预测模型

本教程阐述典型代谢组学数据分析工作流程,用于二元分类结果的研究。流程主要步骤如下:首先从 Excel 表格导入代谢物与实验数据,接着基于汇总 QC 进行数据清洗。随后借助主成分分析可视化检查数据质量,再开展两类单变量统计。之后运用偏最小二乘判别分析(PLS - DA)实施多变量分析,此过程涵盖模型优化(对比 R2 与 Q2)、置换测试及明确模型预测指标、确定特征重要性、对模型预测数据进行可视化。最终将统计表格导出至 Excel 表格,完整呈现从数据导入到分析结果输出的全过程。

专注生信领域 2874

Kotlin学习笔记一:Kotlin基础

Kotlin基础 首先来个经典的Hello World fun main(args : Array<String>) { println("Hello World") } 关键字 fun 用来声明一个函数 参数类型写在名称后面,变量声明也一样 函数可以定义在文件的最外层,不用非放在类里 数组是一个类 使用 println 代替了 System.out.println。Kot...

苟浩的博客 612

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

kotlin学习笔记2

kotlin学习笔记2

安在野 217

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Kotlin的学习笔记1

1.Kotlin学习笔记1 新建立项目kotlin,HelloWorld.kt的文件名称 1.1.运行结果 1.2函数的声明 fun 函数名称(参数) { 函数体 } 1.3 注释 // 和/**/ 和C语言一样的。 1.4 变量 var 变量名:数据类型 1.5 变量赋值 var c:Int=1 类型名 描述 占用空间 例子 By...

keny-大成的博客 134

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Kotlin学习笔记、思维导图

王智博 736

学习笔记-Kotlin

前些年的kotlin学习笔记,工作中没有实际使用到,仅此笔记用于有需要时翻阅回忆。

linqingf的专栏 1173

kotlin学习笔记之一:基础语法

年前看boss直聘,很多安卓开发岗位需要熟练kotlin开发,为了年后找工作和以后开发效率提升,春节假期开始了kotlin的学习,主要教材是《Kotlin 实战》kotlin in action这本书,这几天有时间顺便把阅读笔记整理下,这里是前三章内容的回忆和笔记整理。 1、kotlin代码在java中访问:文件名+Kt.fun名称,文件名可以通过注解指定名称:@file:JvmNam...

weixin_34327761的博客 156

Kotlin学习笔记二:Kotlin的类型系统

Kotlin的类型系统 基本数据类型和其他基本类型 Java把基本类型和引用类型区分开,基本类型存值,引用类型存地址,还提供了基本类型的包装类型,比如:Integer等。Kotlin并不区分基本类型和引用类型,用的全是一个类型。 val i: Int = 1 val list: List<Int> = listOf(l, 2, 3) 上面的 i 在最后会编译成Java的int, 对于...

苟浩的博客 546

kotlin学习笔记(1)kotlin实体类创建以及get set方法使用

【代码】kotlin学习笔记(1)kotlin实体类创建以及get set方法使用。

yundashi168.com 1871

Kotlin进阶学习笔记01

Kotlin进阶学习笔记 从源码分析学习Kotlin,知其然、知其所以然。 通用基础语法学习Kotlin官网或快速语法学习笔记 1. Why Kotlin 之官方说辞 简洁Concise:data class、lambda、快速单例类object 安全Safe:Nullable类型区分,自动推断 //区分nullable var str:String//不同于String? str=null//编译则报错,因为String类型非空,任何可空类型需要?符号,比如String? //避免N

志威梦优快云博客 997

【Kotlin】基本语法学习笔记

Kotlin基础语法

XiaoWu0629的博客 715

Kotlin学习笔记--Kotlin之语言基础

Kotlin极简教程学习笔记--Kotlin基础(一)Kotlin简介Kotlin语言基础1.包2.变量2.1声明变量2.2变量类型推断2.3变量类型检测2.4字符串与模板表达式3流程控制语句3.1 if3.2when3.3 for循环 while 循环 Kotlin简介 Kotlin是一门静态类型编程语言,支持JVM平台、Android 平台等等支持与Android、java 完全互操作。 Ko...

fanlc的博客 579
上一篇: Android技能树
下一篇: ios中通过代码来创建第一个页面
全栈大师兄
博客等级 码龄11年 448粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值