Kotlin语法-Day10

news/2024/11/23 2:26:36/

文章目录

    • 1.1 变换函数-map
    • 1.2 变换函数-flatmap
    • 1.3 变换函数-filter
    • 1.4 合并函数-zip
    • 1.5 kotlin与java交互(注解)

1.1 变换函数-map

package com.example.kotlin_study.s3
//TODO Kotlin语言中的变换函数map
/*
*
* */
fun main() {val list= listOf("张三2","李四11","王五111")//原理:就是把你 匿名函数 最后一行的返回值 加入到一个新的集合,新集合的泛型是R,并且返回新集合val list2 = list.map {"【$it】"}println(list2)val list3 =list.map {"名字是:$it"}.map {"$it, 文字长度是:${it.length}"}.map {"【$it】"}for (s in list3){println("$s  ")}
}

在这里插入图片描述


1.2 变换函数-flatmap

//TODO Kotlin语言中的变换函数-flatmap
/*
*
*  map { it == 每一个元素 T 例如 String Int Boolean Char...    是把每一个元素加入到新集合}
*  flatmap { it == 每一个元素 T 集合1 集合2 集合3 ...  是把每一个元素(集合)加入到新集合}
* */
fun main() {//原理:就是把你 匿名函数 最后一行的返回值(又是一个集合listOf(...)) 加入到一个新的集合,新集合的泛型是R,并且返回新集合val list = listOf("李四","张三","王虎")val map = list.flatMap {listOf("$it 在学习c++", "$it 在学习java", "$it 在学习kotlin")}println(map)
}

在这里插入图片描述


1.3 变换函数-filter

//TODO Kotlin语言中的过滤函数-filter
/*
*
* */
fun main() {val nameLists= listOf(listOf("黄晓明","李连杰","李小龙"),listOf("刘军","李元霸","刘明"),listOf("刘局","黄家驹","黄飞鸿"))nameLists.map {// it   ==  nameLists的元素 == listOf("黄晓明","李连杰","李小龙")println(it)}println()val map = nameLists.flatMap {println(it)listOf("")}println()nameLists.flatMap { it ->it.filter {println("$it filter")true//filter  {true,false} true他会加入到新的集合,进行组装新集合 返回,   否则false过滤掉,不加入,返回空集合}}.map {print("$it  ")}println()println()nameLists.flatMap { it ->it.filter {it.contains('黄')//filter  {true,false} true他会加入到新的集合,进行组装新集合 返回,   否则false过滤掉,不加入,返回空集合}}.map {print("$it  ")}}

在这里插入图片描述


1.4 合并函数-zip

//TODO Kotlin语言中的合并函数-zip
/*
*
* */
fun main() {val names= listOf("张三","李四","王五","马六")val ages= listOf(20,21,22,23)//原理:把第一个集合和第二个集合,合并起来,创建新的集合,并返回//      创建新的集合(元素,元素,元素)  元素Pair(K,V) K代表第一个集合的元素  V代表第二个集合的元素val zip :List<Pair<String,Int>> = names.zip(ages)println(zip)println()//遍历zip.forEach {//it  == Pair<String,Int>println("姓名是:${it.first},年龄是:${it.second}")}}

在这里插入图片描述


1.5 kotlin与java交互(注解)

  • @file:JvmName
    修改kotlin类名,必须在包名之前
    在这里插入图片描述

  • @JvmField
    将kotlin类中的属性公开,默认是private
    在这里插入图片描述

  • @JvmOverloads
    原理:编译器环节 专门重载一个函数 专门给java用
    在这里插入图片描述

  • @JvmStatic
    companion实际上是会生成一个类,JAVA调用时需要先拿到这个类再去调用内部属性或方法
    在companion object属性添加@JvmField,方法上添加@JvmStatic


http://www.ppmy.cn/news/40818.html

相关文章

PyTorch笔记

Tensor torch中的Tensor是一种数据结构&#xff0c;使用上与Python的list、numpy的array、ndarray等数据结构类似&#xff0c;可以当成一个多维数组来用。 数学上对张量有特定定义&#xff0c;但通常理解为多维数组即可。 生成Tensor&#xff1a;torch包中提供了直接生成Tens…

Xshell 连接提示Connection established. To escape to local shell

我出现这个情况是服务器设置了白名单&#xff0c;然后公司的外网ip变了。

湖南麒麟快速启动优化

1、修改grub.cfg内的timeout配置 grub.cfg位于/boot/grub2文件夹内 将其中63行和67行的timeout5修改为timeout1 2、打开networkManager.service服务 systemctl enable NetworkManager.service 输入命令后如果没有输出信息证明该服务已经打开&#xff0c;跳过此步骤 3、修改…

深度学习12. CNN经典网络 VGG16

深度学习12. CNN经典网络 VGG16一、简介1. VGG 来源2. VGG分类3. 不同模型的参数数量4. 3x3卷积核的好处5. 关于学习率调度6. 批归一化二、VGG16层分析1. 层划分2. 参数展开过程图解3. 参数传递示例4. VGG 16各层参数数量三、代码分析1. VGG16模型定义2. 训练3. 测试一、简介 …

高分子PEG:Vitamin A-PEG,mPEG Retinoic acid,甲氧基聚乙二醇维甲酸,可用于药物递送或生物测定开发

一、基团反应机理&#xff1a; 维甲酸/维生素A PEG衍生物是一类生物活性PEG&#xff0c;可用于药物递送或生物测定开发。全反式视黄酸&#xff08;ATRA&#xff09;是视黄酸受体&#xff08;RAR&#xff09;和视黄醇类 X 受体&#xff08;RXR&#xff09;的配体。所结合的RAR和…

赞藏1000万+!小红书“公式”营销怎么玩?

继火遍全网「早C晚A」后&#xff0c;近来小红书又吹起一股名为「早P晚R」的新风。 将产品与“公式词组”绑定&#xff0c;加深消费者认知度&#xff0c;是高效种草的方式之一。那么&#xff0c;品牌如何玩转“公式”营销&#xff1f;本期千瓜借早P晚R及热门公式笔记&#xff0c…

Python 进阶指南(编程轻松进阶):十一、注释、文档字符串和类型提示

原文&#xff1a;http://inventwithpython.com/beyond/chapter11.html 源代码中的注释和文档可能和代码一样重要。原因是软件是永远不会完成的&#xff1b;无论是添加新功能还是修复错误&#xff0c;您总是需要做出改变。但是你不能改变代码&#xff0c;除非你理解它&#xff0…

Java笔记_11(常用API)

Java笔记_11一、常用的API1.1、MathMath练习1.2、System1.3、Runtime1.4、Object1.5、浅克隆、深克隆1.6、对象工具类的Objects一、常用的API 1.1、Math 是一个帮助我们进行数学计算的工具类私有化构造方法&#xff0c;所有的方法都是静态的 Math类的常用方法 方法名说明pu…