You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Swift代码改写为如Kotlin版本般简洁的写法?

Swift简化实现方案

你可以借助Swift的可选型map方法和空合运算符,实现和Kotlin版本简洁度一致的等价代码,以下是两种常用写法:

写法1(和Kotlin逻辑完全对齐,最简洁)

func example(someInt: Int, someNullableInt: Int?) -> String {
    let nonNullStr = convertAnIntegerToStringButTakesOnlyNonNullInt(someInt)
    return someNullableInt.map { nonNullStr + convertAnIntegerToStringButTakesOnlyNonNullInt($0) } ?? nonNullStr
}

如果使用Swift 5.1及以上版本,还可以利用单表达式隐式返回特性进一步缩短:

func example(someInt: Int, someNullableInt: Int?) -> String {
    convertAnIntegerToStringButTakesOnlyNonNullInt(someInt) + (someNullableInt.map(convertAnIntegerToStringButTakesOnlyNonNullInt) ?? "")
}

逻辑说明

  • Swift的Optional.map完全对应Kotlin的?.let逻辑:可选值非空时解包传入闭包处理,空时直接返回nil
  • Swift的空合运算符??等价于Kotlin的?:,左侧值为nil时返回右侧默认值
  • 第二种写法直接将转换函数作为参数传入map,省略了闭包参数的显式声明,代码更紧凑。

内容的提问来源于stack exchange,提问作者ming chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:27:01