
具体示例
-  run:val result = someObject.run { // 这里可以使用 this this.someMethod() }
-  let:val result = someObject?.let { // 这里使用 it it.someMethod() }
-  with:val result = with(someObject) { // 这里使用 this someMethod() }
-  apply:val obj = SomeClass().apply { // 这里使用 this property = value }
-  also:someObject.also { // 这里使用 it println(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)
}

















![[机器学习]XGBoost(3)——确定树的结构](https://i-blog.csdnimg.cn/direct/99fb4a07aeda47a4ba1777a4383b677a.png)