Kotlin的内置函数 apply、let、run、with、also
let
1.let函数返回类型,是根据匿名函数的最后一行变化而变化
2.let函数中的匿名函数里面持有的是it == 集合自身
fun main() {var num1 = 1var num2 = 1var result:Intresult = num1 + num2var str = result?.let {//传入本身,it指代本身即result,result不为空则执行let,为空则不执行println("传进来的值为${it}")"${num1} + ${num2} = ${result}" //此处为返回的值}?:"传进来的值为null"print(str)
}
传进来的值为2
1 + 1 = 2
apply
apply: info:apply
1.apply函数返回类型,都是info自身
2.apply函数中的匿名函数里面持有的是this == info自身
run
run:str.run
1.run函数返回类型,是根据匿名函数最后一行变化而变化
2.run函数中的匿名函数里面持有的是this == str自身
fun runFunction(){val str = "yuknight"val r = str.run {//this == strtrue}println(r)//run中匿名函数val strRun = str.run {str.length > 5}.run {if (this) "字符串合格" else "字符串不合格"}.run {"[$this]"}println(strRun)//run中使用具名函数val strRun1 = str.run(::isLong).run(::showText)//::表示引用函数.run(::mapText)println(strRun1)
}fun isLong(str: Stri
true
[字符串合格]
[字符串合格]
with
with with(str)
1.with函数返回类型,是根据匿名函数最后一行变化而变化
2.with函数中的匿名函数里面持有的是this == str自身.
3.跟run在使用的时候不一样
fun isLong(str: String) = str.length > 5
fun showText(isLong: Boolean) = if (isLong) "字符串合格" else "字符串不合格"
fun mapText(getShow: String) = "[$getShow]"
fun getStrLen(str: String) = str.length
fun getLenInfo(len: Int) = "字符长度:$len"
fun getInfoMap(info: String) = "[$info]"
fun getshow(content: String) = println(content)fun withMethod() {val str = "yuknight"val length = with(str) {this.length//this == str //返回类型为匿名函数里面最后一行}println(length)val r1 = wi
与run不同的是width需要传入参数
also
also str.also
1.also函数返回类型,都是str自身
2.also函数中的匿名函数里面持有的是it == str自身.
fun alsoMethod() {val str = "YuKnight"str.also {it.length //it == strprintln("$it") //返回值为str自身}//str.also特点,可以链式调用str.also {println("str原始数据是:$it")}.also {println("str转换成小写:${it.toLowerCase()}")}.also {println("链式调用结算 ${it}")}
}
YuKnight
str原始数据是:YuKnight
str转换成小写:yuknight
链式调用结算 YuKnight
总结
| 方法 | 返回值 | 自身指代 | 是否传参 |
|---|---|---|---|
| let | 最后一行 | it | 否 |
| apply | 自身 | this | 否 |
| run | 最后一行 | this | 否 |
| with | 最后一行 | this | 是 |
| also | 自身 | it | 否 |
相关文章:
Kotlin的内置函数 apply、let、run、with、also
let 1.let函数返回类型,是根据匿名函数的最后一行变化而变化 2.let函数中的匿名函数里面持有的是it 集合自身 fun main() {var num1 1var num2 1var result:Intresult num1 num2var str result?.let {//传入本身,it指代本身即result,result不为空…...
2023年人工景点行业研究报告
第一章 行业概况 1.1 定义及分类 人工景点行业通常指的是设计和构建的为提供娱乐、教育或文化体验的景点。这些景点可能包括主题公园,博物馆,动物园,水族馆,科学中心,历史遗迹,艺术展览等。这个行业通常包…...
react轮播图
这里 我用的是组件: 网址:Collapse 折叠面板 - Ant Design Mobile 1.首先 先声明一个变量 2、把需要的数据存存进去 3、组件内容复制过来(这里用到的是map循环) 然后图片就出来了 就是这个简单 哈哈哈哈!!…...
Openlayers 叠加天地图-中国近海海洋等深面图层服务
Openlayers 叠加天地图-中国近海海洋等深面图层服务 核心代码完整代码:在线示例 偶然发现天地图有一个近海海洋图层,觉得不错,于是尝试叠加一下,花费了一些时间,叠加成功,这里分享一下。 本文包括核心代码…...
uniapp移动端h5设计稿还原
思路 动态设置html的font-size大小 实现步骤 先创建一个public.css文件,设置初始的font-size大小 /* 注意这样写 只能使用css文件, scss 是不支持的, setProperty 只适用于原生css上 */ html {--gobal-font-size: 0.45px; } .gobal-font-size {font-size: var(--g…...
后端数据配置相对路径,前端添加网站根 URL (根路径)- js获取网站项目根路径- 获取根路径后的第一个斜杠前 / 的项目- - 判断url包含某字符串
1、js获取网站项目根路径 js获取项目根路径,如下: 原 http://localhost:8080/testproject/test.html 根路径:http://localhost:8080 function getRootPath(){//获取当前网址,// 如: http://localhost:8080/testpro…...
deepspeed多机多卡并行训练指南
文章目录 前言离线配置训练环境共享文件系统多台服务器之间配置互相免密登录pdsh多卡训练可能会碰到的问题注意总结 前言 我的配置: 7机14卡,每台服务器两张A800 问:为啥每台机只挂两张卡? 答:给我的就这样的&#…...
9.Redis-zset
zset zset 有序集合 -> 升序常用命令zaddzcardzcountzrangezrevrange -> reverse 逆序zrangebyscorezpopmaxzpopminbzpopmax / bzpopminzrankzrevrankzscorezremzremrangebyrankzremrangebyscorezincrby集合间操作zinter -> 交集zunion -> 并集zdiff -> 差集zin…...
云计算的三个主要服务模型:IaaS、PaaS 和 SaaS
文章目录 介绍基础设施即服务(Infrastructure as a Service,IaaS)平台即服务(Platform as a Service,PaaS)软件即服务(Software as a Service,SaaS) 区别基础设施即服务&…...
spring ioc,DI,AOP概述
Spring是一个轻量级的Java开发框架。其中,IoC、DI和AOP是Spring框架的核心概念。 IoC(Inversion of Control,控制反转):IoC是一种设计模式,是指将对象的创建、管理和控制权交给IoC容器,由IoC容器…...
meethigher-Apache Poi 实现Excel多级联动下拉框
由于最近做的功能,需要将接口返回的数据列表,输出到excel中,以供后续导入,且网上现有的封装,使用起来都较为麻烦,故参考已有做法封装了工具类。 使用apache poi实现excel联动下拉框思路 创建隐藏单元格&a…...
基于食肉植物算法优化的BP神经网络(预测应用) - 附代码
基于食肉植物算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于食肉植物算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.食肉植物优化BP神经网络2.1 BP神经网络参数设置2.2 食肉植物算法应用 4.测试结果:5…...
FFDNet-pytorch版本代码训练教程
一、FFDNet-pytorch版本代码下载 (1)FFDNet-pytorch下载 https://download.csdn.net/download/qq_41104871/88233742 (2)FFDNet-pytorch版本代码运行环境配置 https://blog.csdn.net/qq_41104871/article/details/132497008 二、FFDNet-pytorch版本代码训练教程 (1)按…...
C语言练习7(巩固提升)
C语言练习7 编程题 前言 “芳林新叶催陈叶,流水前波让后波。”改革开放40年来,我们以敢闯敢干的勇气和自我革新的担当,闯出了一条新路、好路,实现了从“赶上时代”到“引领时代”的伟大跨越。今天,我们要不忘初心、牢记…...
golangORM框架Gorm
ORM框架Gorm gorm简介gorm声明模型gorm连接到数据库gorm创建记录gorm查询记录gorm高级查询gorm更新gorm删除SQL 构建器gorm Belongs To关系gorm Has One关系gorm Has Many关系gorm Many To Many关系gorm 实体关联gorm 会话gorm事务Gorm总结...
Python项目实战之《飞机大战游戏》
目录 一、Pygame库包简介 二、Pygame安装 三、项目开发思路 3.1前言 3.2飞机大战开发步骤 一、Pygame库包简介 Pygame是一个基于python的游戏开发库,它提供一系列的工具和接口,使开发人员能够轻松的创建各种类型的游戏,包括2D游戏和简单…...
Mysql数据库(2)—事务和锁
一、事务 数据库事务的特性? 数据库事务的四大特性是ACID。 原子性:就是所有操作要么全不做,要不全做。通过undo日志来实现。一致性:就是在并发情况下数据库由一个状态转移到另一个状态的数据要一致。通过事务的隔离级别来实现…...
Shell - 加固系统配置
文章目录 #! /bin/bash # Function:对账户的密码的一些加固 read -p "设置密码最多可多少天不修改:" A read -p "设置密码修改之间最小的天数:" B read -p "设置密码最短的长度:" C read -p "设置密码失效…...
【linux】记录archlinux软件包更新后lualatex无法编译的一种解决方案
1 环境参数 操作系统:archlinux Kernel: 6.4.11-arch2-1 包管理器:pacman 日期:2023.08.25 2 问题描述 今天一如往常地进行软件包更新: sudo pacman -Syu随后,在使用luelatex对我的论文(latex)…...
设计模式中的关系
文章目录 一、依赖概念 二,关联概念 三、聚合概念 四、组合概念 五、实现概念 六、继承概念 图总结整体总结 一、依赖 概念 依赖是一种临时使用关系,代码层体现为作为参数。 具体体现:依赖者调用被依赖者的局部变量、参数、静态方法&#…...
企业级应用如何利用Taotoken的容灾与路由能力保障AI服务高可用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用Taotoken的容灾与路由能力保障AI服务高可用 对于将大模型能力深度集成到关键业务流程的企业应用而言࿰…...
折叠Cascode运放设计避坑指南:从90dB增益掉到60dB?可能是这5个细节没做好
折叠Cascode运放设计避坑指南:从90dB增益掉到60dB?可能是这5个细节没做好 在模拟IC设计的深水区,折叠Cascode运算放大器就像一位优雅的芭蕾舞者——看似轻盈的架构下隐藏着对每个技术细节的极致把控。当您精心设计的电路从仿真器中吐出60dB增…...
终极指南:如何用Prodigal在3分钟内完成原核生物基因预测
终极指南:如何用Prodigal在3分钟内完成原核生物基因预测 【免费下载链接】Prodigal Prodigal Gene Prediction Software 项目地址: https://gitcode.com/gh_mirrors/pr/Prodigal 还在为复杂的基因预测工具头疼吗?面对海量的微生物基因组数据&…...
LeetCode 合并K个排序链表题解
LeetCode 合并K个排序链表题解 题目描述 合并 k 个排序链表,返回合并后的排序链表。 示例: 输入:lists [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6] 解题思路 方法:堆 思路: 使用最小堆存储每个链表的…...
华硕笔记本性能优化神器:3步掌握G-Helper轻量级控制中心
华硕笔记本性能优化神器:3步掌握G-Helper轻量级控制中心 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, …...
数据保护双引擎:深入解析HyperSnap与HyperCDP的核心原理与选型指南
1. 数据保护的基石:为什么需要HyperSnap和HyperCDP? 想象一下你正在编辑一份重要文档,突然电脑蓝屏了。如果没保存,几小时的工作可能付诸东流——这就是数据保护要解决的核心问题。在企业级存储中,HyperSnap快照和Hype…...
Hitboxer:终极免费SOCD按键重映射工具,3分钟彻底解决游戏输入冲突
Hitboxer:终极免费SOCD按键重映射工具,3分钟彻底解决游戏输入冲突 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为游戏中同时按下相反方向键导致角色卡顿而烦恼吗?Hitb…...
终极指南:如何使用Harepacker复活版轻松打造你的MapleStory游戏世界
终极指南:如何使用Harepacker复活版轻松打造你的MapleStory游戏世界 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 想要个性化修…...
polars导入csv文件时指定列数据类型
polars导入csv文件时指定列数据类型schema {column1: pl.Int64,column2: pl.Float64,column3: pl.Utf8}df pl.read_csv(data.csv, schemaschema)def pddaoru_csv(filedir):order_5G[承建方,厂家,市名称,统计局区县,数据时间,小区名称,基站ID,小区ID,小区覆盖类别,频段,带宽,小…...
5分钟搞定多平台直播:OBS-multi-rtmp插件终极指南
5分钟搞定多平台直播:OBS-multi-rtmp插件终极指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 还在为不同直播平台重复配置推流参数而烦恼吗?想要一键同步推流…...
