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

SwiftUI的body中返回List/NavigationView时return关键字的作用差异

1. return关键字的作用

Swift 函数、计算属性、闭包中的return是标准的返回语句,作用是显式声明将其后的表达式结果作为当前作用域的返回值,你给出的示例中写return就是明确把后面构造的NavigationView/List实例作为body计算属性的返回值,这种写法兼容所有Swift版本。

你可以删掉return还能正常运行,和Swift的两个特性有关:

  • 首先是单表达式隐式返回:如果一个返回值的作用域内只有一行表达式,不需要写return,编译器会自动把该表达式的结果作为返回值,这个特性从Swift最初的版本就支持。
  • 其次是Swift 5.9新增的多语句隐式返回:就算作用域内有变量声明、赋值等其他语句,只要所有执行路径最后只有一个符合返回类型的表达式,编译器也可以自动识别为返回值,不需要手动写return。如果你用的是Swift 5.9之前的版本,你示例中body里先写let声明常量再返回View的写法,不写return会直接编译报错。

另外补充:body属性默认被@ViewBuilder修饰,如果你在body里直接写多个View(不需要外层套Stack/Group),ViewBuilder会自动把多个View打包成复合View类型返回,这种场景下本身就不需要写return。

2. NavigationView和List使用return关键字的差异

二者没有任何差异。
不管你返回的是NavigationView、List还是其他任意符合View协议的实例,return的语法规则完全一致,和控件本身的类型没有任何关联。你在两个示例中都可以自由选择显式写return或者省略,效果完全相同。

小提示:NavigationView从iOS 16开始已经被官方弃用,新的iOS版本推荐使用NavigationStack(单栏导航)或NavigationSplitView(多栏导航)替代。

内容的提问来源于stack exchange,提问作者Dan Choi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:02