Android笔记【19】

server/2024/12/23 21:55:50/

具体示例

  1. run:

    val result = someObject.run {// 这里可以使用 thisthis.someMethod()
    }
    
  2. let:

    val result = someObject?.let {// 这里使用 itit.someMethod()
    }
    
  3. with:

    val result = with(someObject) {// 这里使用 thissomeMethod()
    }
    
  4. apply:

    val obj = SomeClass().apply {// 这里使用 thisproperty = value
    }
    
  5. also:

    someObject.also {// 这里使用 itprintln(it)
    }
    

总结

  • 结果的场景。
  • let 适合处理潜在的 null 值。
  • apply 用于初始化对象,返回对象本身。
  • also 用于在不改变对象的情况下执行附加操作。

根据需求选择合适的函数,可以提高代码的可读性和简洁性。

例如?.run

@RequiresApi(Build.VERSION_CODES.TIRAMISU)override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)enableEdgeToEdge()val students=intent.getParcelableArrayListExtra("data",Student::class.java)setContent {Day04Theme {Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->students?.run {SecondScreen(modifier = Modifier.padding(innerPadding),this)}}}}}

如果不适用则换成下面代码

if (students != null) {SecondScreen(modifier = Modifier.padding(innerPadding), students)
}


http://www.ppmy.cn/server/152591.html

相关文章

跨站点请求伪造(Cross Sites Request Forgery)类漏洞攻击方式与防御措施|软件安全测试技术系列

本系列文章分享JavaScript语言常见的安全漏洞,漏洞的原理,可能导致的安全问题,以及如何防御与避免。本文分享的是跨站点请求伪造(Cross Sites Request Forgery)。 跨站点请求伪造,指利用用户身份操作用户账…

普通人不搞副业还有什么出路?难道都能选择躺平?

为什么今天要讲到这个话题,还是因为总有小白问我,有什么好做的项目,有什么撰米的项目... 还有想法终归是好的,还想搞钱,没有直接摆烂、躺平… 也有不少人选择了躺平,但人家确实有躺平的资格! …

如何设计一个秒杀系统

开局一张图 结局要说清 对于设计一个秒杀系统,结合图片分层结构,根据每一层从访问层,负载层,服务层,业务层,支撑层,数据层,详细说明每一层应该怎么设计。 应该注意那些事项。比如访…

详细ECharts图例3添加鼠标单击事件的柱状图

<!DOCTYPE html><html><head><meta charset"UTF-8"><script src"js/echarts.js"></script> <!-- 确保路径正确 --><title>添加鼠标单击事件的柱状图</title></head><body><div id&q…

华为IPD流程6大阶段370个流程活动详解_第一阶段:概念阶段 — 81个活动

华为IPD流程涵盖了产品从概念到上市的完整过程,各阶段活动明确且相互衔接。在概念启动阶段,产品经理和项目经理分析可行性,PAC评审后成立PDT。概念阶段则包括产品描述、市场定位、投资期望等内容的确定,同时组建PDT核心组并准备项目环境。团队培训涵盖团队建设、流程、业务…

Jenkins搭建并与Harbor集成上传镜像

Jenkins介绍 Jenkins 是一个开源的自动化服务器&#xff0c;广泛用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;的实践中。它帮助开发人员自动化构建、测试和部署过程&#xff0c;从而提高开发效率、代码质量和项目交付速度。通过丰富的插件支持…

express+mysql实现注册功能

这里写自定义目录标题 app.jsregister.htmlsuccess.html初始化项目mysql app.js const express require("express"); const bodyParser require("body-parser"); const mysql require("mysql"); const path require("path"); con…

React源码02 - 基础知识 React API 一览

1. JSX到JavaScript的转换 <div id"div" key"key"><span>1</span><span>2</span> </div>React.createElement("div", // 大写开头会当做原生dom标签的字符串&#xff0c;而组件使用大写开头时&#xff0c;这…