Koltin简明学习,解构声明

Android快速转战Kotlin教程 前言 kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。 那么这篇文章你可以收获什么? 答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。 前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也是白学) 建议:建议... 阅读详情

解构声明(Destructuring Declarations):个人理解,是一种通过方便的方法得到一个对象的成员变量

普通应用

我们在一个文件中定义一个Person类

data class Person(val name: String, val age: Int)

我们可以通过简单的语法获得这个类的name和age属性

val (name, age) = Person("tom", 11)

println(name)
println(age)

属性结果是:

I/System.out: tom
I/System.out: 11

上面的Person是数据类(data class)当我们定义一个普通的类,看看

class Dog(val name: String, val age: Int)

我们发现不能简单的通过下面的方法获取name和age的值

val (nameDog, ageDog) = Dog("James", 5)

为什么数据类可以,普通类就不可以呢?
因为数据类帮我们实现了解构声明需要的componentN方法这个N可以是1或者2等.

我们重新定义Dog类:

class Dog(val name: String, val age: Int) {

    operator fun component1() = name
    operator fun component2() = age
}
val (nameDog, ageDog) = Dog("James", 5)
println(nameDog)
println(ageDog)

上面的代码打印输出:

I/System.out: James
I/System.out: 5

方法返回两个值

不解释,看代码

data class Result(val result: Int, val status: Status)
fun function(...): Result {
    // computations

    return Result(result, status)
}

// Now, to use this function:
val (result, status) = function(...)

解构声明和Map

通过解构声明变量Map,打印key和value

val map = mapOf<Int, String>(1 to "one", 2 to "two", 3 to "three")

for ((a, b) in map) {
    print("$a-")
    println(b)
}

输出:

I/System.out: 1-one
I/System.out: 2-two
I/System.out: 3-three

转换一个Map的value值

val map = mapOf<Int, String>(1 to "one", 2 to "two", 3 to "three")

val map2 = map.mapValues { (key, value) -> "android_$value" }

for ((a, b) in map2) {
    print("$a-")
    println(b)
}

输出:

I/System.out: 1-android_one
I/System.out: 2-android_two
I/System.out: 3-android_three

参考文献

https://kotlinlang.org/docs/reference/multi-declarations.html

Kotlin简明学习—文章列表

基于单片机的自动喷淋系统设计【毕业设计】 随着人民生活质量提高与生活节奏的加快,城市居民对于花草绿植的家庭培养与装饰需求增加,随之因浇灌植物的需要,智能浇花系统的市场逐渐扩大。现有自动浇花系统大部分只能通过设置固定浇水时间而难以实现适时、适量浇水,或在植物环境土壤含水量低时进行报警而并不能实际补水。为克服局限性而设计以单片机为控制中心的自动浇花系统。通过湿度传感器检测目标植物环境土壤湿度数据,再经ADCO832将其放大转换为数字量,由单片机读取输出向LCD1602 显示屏显示并通过比对键盘向单片机所设置的湿度范围而利用中断服务程序进行补水需求判断。 阅读详情

相关推荐

CAN信号定义避坑指南:Kvaser Database Editor里Byteorder和Bitpos设置的那些‘坑’

本文详细解析了在Kvaser Database Editor中配置CAN信号时,字节序(Byteorder)和起始位(Bitpos)设置的常见错误及解决方案。通过实际案例和验证技巧,帮助工程师避免DBC文件配置中的陷阱,确保车载电子系统的稳定通信。

weixin_28678831的博客 360

Koltin 语言与Java语言有哪些差异?

Java中的方法定义方式方法修饰符 方法返回值 方法名(参数1类型 参数1名称,参数2类型 参数2名称,......){方法体}Koltin 中方法定义方式fun(固定位fun,function的缩写) 方法名 (参数1名称 参数1类型,参数2名称 参数2类型,......):方法返回值类型{方法体}

m0_70325779的博客 1781

74HC165级联踩坑实录:STM32读取32路开关状态,时序调试与常见问题排查

本文详细介绍了74HC165级联在STM32读取32路开关状态时的时序调试与常见问题排查。从硬件设计的PCB布局优化、电源噪声控制,到软件时序的精确调校和数据采集策略,提供了完整的解决方案。通过逻辑分析仪和示波器的高效使用,解决了信号延迟和干扰问题,最终实现了稳定可靠的32路信号读取。

weixin_34046298的博客 313

Kotlin入门学习(非常详细),从零基础入门到精通,看完这一篇就够了

和Java中的接口定义类似。

Javachichi的博客 6万+

FFTW库安装与使用(3.3.5版本)

FFTW库安装与使用一、FFTW库介绍与下载二、FFTW库安装三、FFTW库测试 一、FFTW库介绍与下载   FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT,且运行速度比Eigen和opencv自带的FFT库函数快10倍以上。   下载链接:http://www.fftw.org/install/wind

Jhon_ranble的博客 2万+

cocos2dx lua + protobuf

vs 2015 cocos2dx 3.10  lua  protobuf1. 下载 protobuf 源码     https://github.com/bnnswyp/protobuf/tree/master/protobuf-2.5.0    解压后的文件列表如下所示         其中 vsprojects 文件夹为 protobuf 的vs 工程2. 打开 protobuf.sln 编译...

u014486706的博客 2161

Kotlin语言现在怎么不火了?

Kotlin没有大火过,其实一直都在慢慢发展,变得越来越火。不存在题主所说的原先很火现在不火的情况。而且google官方强调一切活动以Kotlin优先。某些库甚至只支持kotlin。哦,如果你不在乎「专为旧版鸿蒙打造」的环境的话,那么新版鸿蒙也同样是一切kotlin优先的。也许它不能火的原因还是jetbrains比不上sun跟oracle等公司财大气粗吧。是的,它并不是google为了android打造的语言。而是jetbrains为了让程序员更舒服的编程而创造的,google只是恰好选择了它而已。jetb

老皮的博客 1万+

详解YOLOv5网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

本文给大家带来的教程是利用YOLOv5训练自己的数据集,以及有关YOLOv5的网络结构讲解/数据集获取/环境搭建/训练/推理/验证/导出/部署相关的教程,同时通过示例的方式让大家来了解具体的操作流程,过程中还分享给大家一些好用的资源,我还对其中的参数进行了详细的讲解,通过本文大家可以成功训练自己的数据集,在开始之前给大家推荐一下我的YOLOv5专栏,本专栏包含上百种YOLOv5的改进机制以及如何撰写论文的教程,手把手教大家如何改进YOLOv5非常适合科研小白。

Snu77的博客 4898

Kotlin基础学习(一)—— Kotlin 简介

Kotlin入门学习

123 8850

金融领域强化学习在高频交易中的应用

强化学习(Reinforcement Learning,简称RL)是一种机器学习范式,通过智能体与环境的交互来学习策略,以最大化累计奖励。与监督学习和无监督学习不同,强化学习依赖于动态的反馈机制,智能体通过试错不断优化决策过程。高频交易(High-Frequency Trading,简称HFT)是指在极短时间内进行的大量金融交易,通常利用算法和计算机系统自动执行交易策略。高频交易依赖于高速的数据处理和决策能力,以捕捉市场中的微小价格波动。状态(State):环境在某一时刻的观测,反映了系统的当前情况。

AI天才研究院 889

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 38

Koltin数据类之解构申明

所谓的解构声明就是将一个对象解构(destructure)为多个变量,也就是意味着一个解构声明会一次性创建多个变量.简单的来说,一个解构声明有两个动作: 声明了多个变量 将对象的属性值赋值给相应的变量 例如:val (name, age) = person这种语法被称为解构声明。解构声明一次创建多个变量。比如声明name和age两个新的变量,可以单独使用。println(name) println(

xiangzhihong8的专栏 1115

AI测试干货:Claude Code Skill 从入门到精通

本文介绍了Claude Code Skill功能如何解决AI重复工作问题。传统提示词方式需要人工复制粘贴,而Skill功能通过建立AI工作记忆库实现智能触发和分层加载。Skill包含工作指令、文档和资源,能自动执行任务。文章以API测试用例生成为例,展示了Skill的创建流程和结构化设计,包括测试框架、覆盖场景和输出格式,显著提升测试工程师的工作效率。

blues_C的博客 2438

Koltin - 面向对象(上)

Kotlin支持面向对象的三大特征:继承、多态、封装。提供了private、protected、internal、public四个访问权限修饰符。 1、Kotlin定义类,语法: [修饰符] class 类名 [constructor 主构造器]{ 零到多个次构造器 零到多个属性 零到多个方法 } 修饰符:可以是public|internal|private(只能出现其中之一)、fi...

json_it的博客 562

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Kotlin和Java相比有什么优点?Koltin全家桶学习资料领取

最近在学Kotlin,虽然还没有像其他博主一样立马就爱上它.但是不得不说,Kotlin对比起Java还是有不少优势:(1)代码简洁。相比较于Java代码,Kotlin大量使用了高阶函数和lambda语法保证在较少的代码下实现同等的功能。(2)非空判断。在Java中,很容易出现问题或者应用程序闪退或者crash的原因很大一部分是因为空指针异常所导致的,而Kotlin中则加入了非常友好的非空处理,可以很大程度上避免出现由于非空导致程序在运行过程中出现的异常。............

Eqiqi的博客 517

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android Kotlin 数据类与密封类(八)

一、前言: 一生要强,喝最烈的酒,开最快的车,听最嗨的歌,住最好的医院,打最贵的石膏,玩最炫的轮椅,睡最好的棺材,挖最深的坑,埋最好的土,烧最厚的纸,长最高的坟头草。 二、基本用法: 1. 数据类 Kotlin 可以创建一个只包含数据的类,关键字为 data: data class User(val name: String, val age: Int) 编译器会自动的从主构造函数中根据所有声...

weixin_39069034的博客 330

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

关于 Kotlin 一系列的学习教程、文章。学好 Kotlin 从这里开始,争取做到最全、最详细。让没有编程经验的朋友也能通过这个系列教程用 Koltin 语言来开发项目

KotlinLearn 项目地址:Jetictors/KotlinLearn 简介: 这是一个关于 Kotlin 一系列的学习教程、文章。学好 Kotlin 从这里开始,争取做到最全、最详细。让没有编程经验的朋友也能通过这个系列教程用 Koltin 语言来开发项目 更多:作者提 Bug 标签: 这是一个关于Kotlin教程的项目,学好Koltin从这里开始,当你看完这...

未来很长,但我会努力的走下去。 278

Kotlin 数据类

声明在类体中的属性,将在生成的实现中被排除。允许保持某些属性不变的同时修改一些属性。component 函数。

cyclelucky的博客 902

Kotlin学习教程

Kotlin教程——史上最全面、最详细的学习教程,持续更新中.... 关于这个系列教程,我是从最基础的开发环境搭建到项目进阶到后面的项目开发这个过程来写的。我一直秉承从实际项目开发以及源码解析的角度去写好这个教程,并让从未接触过编程的朋友能学好kotlin这门语言。所以我想把这个教程写到最详细、最全面。并且也持之以恒的写下去。 前言 在坚持的这个过程中,...

hizhangyuping的博客 379

Kotlin学习笔记(三)-函数式编程

函数式编程 函数声明 扩展函数 函数参数 默认参数 命名参数 可变参数 函数作用域 高阶函数 匿名函数 Lambda表达式 内联函数 尾递归 函数式编程 函数式编程(FP,Functional Programming),又称为泛函编程,是一种编程范式:一切皆是函数。函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数传入另一个函数,或者作为别的函...

liuhedev的博客 263

【教程】Kotlin语言学习笔记(三)——数据容器

Kotlin语言学习第三部分

EliasChang的博客 1249

熟练掌握好这些Kotlin题目,就可以准备随时跳槽

多家面试总结下来,考察的范围都很广,包括基础知识、项目。基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。项目,很多公司都比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。然后就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做题,所以在面试之前要对各种常见面试题了解,有时间的话多去刷刷题找感觉。

yihanss的博客 932

最新Android Kotlin开发指南,从入门到实战,一战通关

想必在读此文的各位对Koltin并不陌生,其是一门可以运行在Java虚拟机、Android、浏览器上的静态语言,具有等特征,最主要的是其专注于与Java代码的互操作性,。Kotlin可以很好地和所有现存的Java库和框架一起工作,而且性能水平和Java旗鼓相当,现已成为。相比于Java,Kotlin还具有安全、代码简洁、扩展函数、内联函数、支持线程的并发协同等优势,可以说是有开发经验的程序员跳槽进阶的热门之选。

Eqiqi的博客 1640

浅谈Kotlin语法

https://blog.youkuaiyun.com/suyimin2010/article/month/2019/04/2https://my.oschina.net/u/3847608转载浅谈Kotlin中集合和函数式API完全解析-上篇(八) 简述: 今天带来的是Kotlin浅谈系列的第八讲,这讲我们一起来聊聊Kotlin这门语言对函数式编程的支持。我们都知道在kotlin这门语言中函数荣升成为了一等公民,所以在支持函数式编程的方面,Kotlin这门语言也是非常给力的,并且在Kotlin中语法也尽量推荐接近.

az44yao的专栏 215

Koltin简明学习,also,takeIf,takeUnless

在koltlin1.1的标准库中新增加了这么几个方法:also,takeIf, takeUnless之前我有篇文章讲了let,apply,with,run。Kotlin简明学习,标准库中的let,apply,with,run方法这篇文章也是对上一篇的补充also定义/** * Calls the specified function [block] with `this` value as its

android2me的专栏 6179

Koltin-用法总结

Kotlin配置点击菜单栏的“Tools”选项,选择“Kotlin”,然后选择“Configure Kotlin in Project”。如下图所示。 在弹出的窗口中选择需要使用Kotlin的模块和Kotlin编译器和运行时的版本,如下图所示。 点击“OK”之后,Kotlin插件会自动开始配置。配置完成之后,同步一下工程(Sync Project)即可。 推荐配置:打开模块下的build

Lebron_xia的博客 2001
上一篇: Koltin简明学习,扩展方法和扩展属性
下一篇: Koltin简明学习,操作符重载(Operator overloading)
android2me
博客等级 码龄14年 30粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值