kotlin 中的对和三重

详解Android官推Kotlin-First的图片加载库 前言 Coil 是一个非常年轻的图片加载库,在 2020 年 10 月 22 日才发布了 1.0.0 版本,但却受到了 Android 官方的推广,在 Android Developers Backstage 这个博客中专门聊过一期。推广的原因比较简单:一方面是这个库确实做得很好,另一方面是这个库完全是用 Kotlin 写的,而且运用了大量 Kotlin 的特性,尤其是协程。所以 Google 嘴上说着不会放弃 Java,但实际上咱们都懂的。 Coil 名字的由来:取 Coroutine Image Lo 阅读详情

每当我们想从一个函数返回两个值时,我们都会为此创建类,但是创建太多类会使您的代码效率低下。

因此,您可以使用Pair来返回或使用两个值,使用Triple来返回或使用三个值,而不是为两个或多个值创建类

在 kotlin 中配对

使用对构造函数声明对

val myPair = Pair(first = "Shivam", second = 22)

使用“first”和“second”成员变量访问 Pair 值 -

println(myPair.first)
println(myPair.second)

通过函数接收 Pair ,我们可以通过命名变量获取 Pair 值,也是这样 -

val (name, age) = getPersonInfo()
println("Name: $name, Age: $age")

fun getPersonInfo(): Pair<String, Int> {
    return Pair("John", 20)
}

将 Pair 转换为 List 类型

val myPair1 = Pair("Hi", "Developers")

val list: List<String> = myPair1.toList()
println("List: $list")

kotlin 中的三重

使用三重构造函数声明三重

 val myTriple = Triple(first = "Dhruv", second = 25, third = 10000.0F)

使用“first”、“second”和“third”成员变量访问 Triple 值 -

  println(myTriple.first)
    println(myTriple.second)
    println(myTriple.third)

通过函数接收三元组,我们也可以像这样获取带有命名变量的三元组值-

val (empName, empAge, empSalary) = getEmployeeInfo()
    println("Employee Name: $empName")
    println("Employee Age: $empAge")
    println("Employee Salary: $empSalary")

fun getEmployeeInfo(): Triple<String, Int, Float> {
    return Triple("John", 20, 25000.5F)
}

三对中的多对

 val myTriple2 = Triple(
        first = Pair(first = "Pair1 Value1", second = "Pair1 Value2"),
        second = Pair(first = "Pair2 Value1", second = "Pair2 Value2"),
        third = Pair(first = "Pair3 Value1", second = "Pair3 Value2")
    ) val myTriple2 = Triple(
        first = Pair(first = "Pair1 Value1", second = "Pair1 Value2"),
        second = Pair(first = "Pair2 Value1", second = "Pair2 Value2"),
        third = Pair(first = "Pair3 Value1", second = "Pair3 Value2")
    )

从三元组访问多个对的值

println(myTriple2.first.first)
println(myTriple2.first.second)

println(myTriple2.second.first)
println(myTriple2.second.second)

println(myTriple2.third.first)
println(myTriple2.third.second)

将 Triple 转换为 List 类型

 val myTriple1 = Triple("Hi", "Hello", "Bye")
    val list1: List<String> = myTriple1.toList()
    println("List: $list1")

我们可以在 Pair 和 Triple 中使用任何不同的数据类型,例如 String、Int、Float、List、ArrayList 等。

最后

为了帮助哪些入门或者想深入的学习 Kotlin的小伙伴 ,我整理一份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。

如有需要可以点击文末微信卡片即可免费领取

Kotlin语言的字符串处理 Kotlin的字符串处理功能强大且灵活,从简单的字符串创建到复杂的正则表达式匹配,都能通过简洁的语法完成。通过强大的字符串模板功能,开发人员可以更方便地构造复杂的字符串,而丰富的内置方法使得字符串操作更加高效和易用。无论是进行简单的字符串拼接,还是使用正则表达式进行复杂的模式匹配,Kotlin都提供了良好的支持。在现代开发中,字符串处理无处不在,掌握Kotlin中的字符串处理方法,将大大提升我们的开发效率。希望本文能够帮助开发者更好地理解和使用Kotlin进行字符串处理。 阅读详情

相关推荐

【Kotlin系列18】进阶之路:从语言特性到架构思维

Kotlin完全学习指南系列总结篇,梳理从语法特性到架构设计的完整知识体系,探索Kotlin背后的设计哲学,建立系统化的技术思维框架,助你从Kotlin使用者进化为Kotlin架构师

Cheson的专栏 671

Kotlin-First !谷歌正式宣布 Kotlin 成为 Android 开发首选编程语言!

在昨天举办的 I/O 大会上, Google 正式向宣布 Kotlin-first,Kotlin 编程语言成为 Android 应用程序开发人员的首选语言。在大会上,Google 还表示...

滴水穿石,点石为金 805

KotlinFirst:只是使用Kotlin语言进行的一些实验

KotlinFirst 只是使用Kotlin语言进行的一些实验

kotlin first/last/indexOf/elementAt

Log.d("======first", numbers.first { it.length > 6 }) //报错 java.util.NoSuchElementException。Log.d("======first", numbers.elementAt(8)) //报错。elementAt 也有这种情况当给出的下标集合中不存在的时候也是会报错的比如。elementAtOrNull的作用判断条件符合返回元素,不符合返回null。参数映射为一个集合元素类型的实例。last 是取集合元素中最后一个元素。

小牧在一直在学习,在前进的道路上大家一起学习,进步。 1412

.NET适配HarmonyOS进展 1. 前言

目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情。我目前业余时间正在移植Avalonia到HarmonyOS,去年在.NET Conf CN上分享过,目前又取得一点进展,所以本文把所有问题进行整合与大家进行分享。

2301_76476890的博客 1461

卡方检验的隐藏逻辑:为什么正态分布的平方和如此重要?

本文深入探讨了卡方检验的核心逻辑,揭示了正态分布平方和在统计检验中的重要性。通过分析卡方分布与伽马分布的关系,以及实际应用案例,帮助读者理解卡方检验的原理、局限及高级应用场景,为数据分析提供有力工具。

3a9bq4r8t2y的博客 208

【Kotlin】为什么要优先使用 Kotlin 进行 Android 开发?

综上所述,尽管Java仍然是Android开发的传统选择,但随着Kotlin的崛起和Google的支持,越来越多的开发者和团队选择优先使用Kotlin进行Android开发,以提高开发效率、代码质量和用户体验。Google本身是Kotlin的支持者和推广者,许多Google的产品和服务,特别是Android开发相关的工具和框架,都在逐步采用和推广Kotlin。Google会支持Kotlin在开发者社区中的普及和应用,包括组织和参与Kotlin相关的培训、会议和活动,以及提供开发者所需的技术支持。

double222222的博客 1396

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

冲击10w 1万+

Kotlin - 元组 Pair、Triple

通常情况下一个变量只能携带一个值,解决方法是自定义数据类,写法过于复杂。Kotlin元组可以把多个值同时赋值给一个变量,或给多个变量同时赋值。 Pair 二元元组:可以携带两个值 Tuple 三元元组:可以携带三个值 val two: Pair<String,Int> = Pair(18,"张三") val three = Triple(22,"李四",true) println("""三元元组的内容:${three.first}、$...

HugMua的博客 9747

从收音机到Arduino:手把手教你用BJT三极管搭建一个简易音频放大器(附电路图与元件清单)

本文详细介绍了如何使用BJT三极管搭建简易音频放大器,涵盖电路原理、元件选择、设计步骤及调试技巧。通过实践项目帮助电子爱好者深入理解BJT的放大特性,并提供与Arduino结合的扩展应用方案,适合创客和DIY玩家。

aitie1479的博客 443

别再到处找了!GWAS数据下载保姆级指南:从IEU、FinnGen到UK Biobank一站搞定

本文提供GWAS数据下载的全面指南,涵盖IEU OpenGWAS、FinnGen、UK Biobank等五大核心数据库的获取策略。从数据库选型到实战操作,详细解析数据搜索、下载、预处理全流程,帮助科研人员高效获取GWAS数据,特别适合初学者快速上手。

weixin_42523543的博客 1586

Gradle构建中Kotlin插件初始化失败的根因与三重解决方案

'Could not initialize class'是JVM类初始化失败的典型信号,本质源于静态块异常导致类状态被标记为不可用。其原理涉及ClassLoader加载顺序、Java版本兼容性及插件元数据契约。该问题在Spring 5.x等老旧构建体系中尤为突出,技术价值在于揭示构建工具链版本咬合的关键性——微小的JDK补丁差异(如8u181 vs 8u202)即可引发Kotlin Gradle插件服务注册崩塌。典型应用场景包括IDEA中刷新Spring源码工程、多模块项目集成Kotlin扩展、CI/CD环

weixin_42567046的博客 208

国密套件ECC-SM2-SM4-CBC-SM3和ECDHE-SM2-WITH-SM4-SM3

双方交换各自的公钥,最后A计算点(x1,y1) = d1Q2,B计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换和结合律,所以 d1Q2 = d1d2G = d2d1G = d2Q1 ,因此双方的 x 坐标是一样的,所以它是共享密钥,也就是会话密钥。4、客户端和服务端分别使用工作密钥,计算主密钥,客户端随机数,服务端随机数,字符串常量"key expansion",经PRF计算生成工作密钥。工作密钥包括加密密钥和校验密钥,具体密钥长度由选择的密码算法决定。客户端支持的压缩算法列表。

Java学习笔记 3784

Kotlin 系列之函数的定义与调用

3 月,跳不动了?>>> 创建了一个 Kotlin ...

黑帽子技术的博客 415

基于Simulink进行步进电机的重复控制仿真建模

重复控制概述目的:通过引入一个周期延迟环节来补偿系统的周期性误差,从而提高系统对周期性参考信号或扰动的跟踪性能。方法内部模型原理:在控制器中嵌入一个与周期性信号相关的模型(例如周期延迟环节),以实现对周期性误差的零稳态误差控制。滤波器设计:为了避免高频噪声放大,通常会在重复控制器中加入低通滤波器。优势对周期性信号具有良好的跟踪性能。不需要精确的数学模型即可实现高性能控制。挑战:需要合理设计重复控制器的参数以避免系统不稳定。

amy_mhd的博客 268

Tmux学习总结

Tmux 重要概念 使用 Tmux 的时候千万不要去背指令,所有的指令都可以在 .tmux.conf 配置文件中绑定自己顺手的快捷键,也可以配置开启鼠标。 这个是我的配置文件:https://github.com/zuorn/tmux.conf 在Tmux逻辑中,需要分清楚Server > Session > Window > Pane这个大小和层级顺序是极其重要的,直接关系到工作效率: Server:是整个tmux的后台服务。有时候更改配置不生效,就要使用tmux kill-

满目星辰 579

kotlin更牛逼的转义类似swift php的某些代码块转义

里面任何字符都不会进行转义 val text = """ for (c in "foo")//\n print(c) """ println("kotlin的语法演示:${text}"); 那么转义则和java一样"hello \n world" 或者普通的 "\n \b" 三个双引号开头和结尾中间可以插入任意字符. ...

情随事迁个人博客 156

Camera2Demo

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

Kotlin-学习笔记-注意事项(一)

内容较多 本篇仅记录几个容易忽略的地方 1 三重引号(""") 模板 里面可以包含任意字符 2 is运算符进行类型检测 is做过类型判断以后,变量会被系统自动转换为 推断类型 3 vararg 可变参数 fun vars(vararg v: Int) {//可变参数 --》相当于数组 for (vt in v) { print(vt) } } 4 扩展函数不可覆...

zuochunsheng的博客 487

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

kotlin 小知识点

文章目录map使用类的使用 map使用 fun map(){ //1,声明对象 val binaryReps=TreeMap&amp;amp;amp;amp;lt;Char,String&amp;amp;amp;amp;gt;() //2,赋值 for (c in 'A'..'H'){ val binary=Integer.toBinaryString(c...

qq_30272789的博客 240

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Kotlin学习总结:函数的定义与调用(三)

Kotlin学习总结:函数的定义与调用(三) 处理集合:可变参数、中缀调用和库的支持 可变参数的关键字vararg,可以用来声明一个函数将可能有任意数量的参数 一个中缀表示法,当你在调用一些只有一个参数的函数时,使用它会让代码更简练 解构声明,用来把一个单独的组合值展开到多个变量中 扩展Java集合的API 本部分的前提,是基于Kotlin中的集合与Java的类相同,但对API做了扩展。可以看...

qq_40277846的博客 417

Kotlin编程语言(六)——不同数量的引号定义字符串

单个双引号 (' ':用于定义单个字符。双引号 ("":用于定义单行字符串,需要转义特殊字符。三重双引号 (""":用于定义多行字符串,不需要转义大多数字符,适合包含复杂格式的字符串。选择哪种方式取决于你的具体需求。如果你只需要一个简单的单行字符串,使用双引号即可;如果你需要处理多行字符串或包含复杂格式的文本,使用三重双引号会更加方便。

weixin_43856952的博客 767

Kotlin 基本数据类型详解二

数据比较 kotlin java == equal === == 在kotlin中,== 表示两个字符串是否相等;=== 表示两个字符串的地址值是否相等。 fun test() { val a: String = "zhangsan" // true,值相等,对象地址相等 Log.e("test", "test" + ...

jhonjson的博客 197

Kotlin学习笔记(一) 语言基础

val与var,val就是C# 的readonly 三重引号(“”“)相当于C# 的@”“ 模板表达式:字符串中有${ }, 那么可以在里面写代码。 没有三元运算符,可以用if(a>b) a else b替换。 很怪的用法。if语句成了可以有返回值的方法了。 unit类型 when表达式, 相当于switch case; 最后的else就是default. 更加灵活。in和!in , 用于表达是否在某个集合里面。类型必须和when中输入相同。 when(x){ -1,...

zjuter的专栏 166
上一篇: Jetpack Compose:简单的 RSS Feed Reader
下一篇: 轻松集成 SAWO SDK 与原生 Android
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1478原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值