android - Kotlin `apply()` Dart 中的方法模拟

标签 android flutter kotlin dart

我希望能够做一些类似 apply() 的事情来自 Dart 中的 Kotlin。例如在 Kotlin

var userDetails: UserDetails = userRepo.getUser().apply{
    //here 'this' is UserDetails so all the further calls are made in that context
    name = "Name"
    email = "email@test.com"
    callSomeInnerMethodOfUserDetails()
};

在 Dart 语言中有一些类似的方法或方法吗?

我想知道标准库或语言本身是否有一些东西,而不是我自己的通用闭包扩展用于此目的?

谢谢。

最佳答案

虽然没有确切的类比,但我偶然发现了一个名为 Cascade notation 的特殊运算符。做类似的工作。

给定的示例将类似于:

UserDetails userDetails = userRepo.getUser()
    ..name = 'Name'
    ..email = 'email@test.com'
    ..callSomeInnerMethodOfUserDetails();

你也可以做一个嵌套的级联
UserDetails otherUserDetails = userRepo.getUser()
    ..name = (userRepo.getUser()
              ..firstName= "Other Name"
              ..assignFirstNameAndSurnameToNameField()).name
    ..email = "otherEmail"
    ..callSomeInnerMethodOfUserDetails();

希望能帮助到你。

关于android - Kotlin `apply()` Dart 中的方法模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61751961/

相关文章:

java - Android视频实时过滤

flutter - 状态未使用 Riverpod 的 StateNotifier 更新 map

android - 自定义导航图标不显示//Jetpack Navigation

kotlin - 如何在 Kotlin 中对查询参数进行 url 编码

android - 如何控制捏放大,缩小在 Android map 上?

Android HttpResponse - 内容已被消费

java - 如何在 Android Studio 上向我的项目添加库?

firebase - flutter : How to implement a callback

gridview - flutter GridView 导致 Navigator.push 错误

android - MVP kotlin 中的 Mockito 测试 - 但是,与此模拟异常恰好有 1 次交互