Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 分解语句而不是使用逗号_Swift - Fatal编程技术网

Swift 分解语句而不是使用逗号

Swift 分解语句而不是使用逗号,swift,Swift,我有以下实现,但我需要分解语句,不要使用,组合它们。重构现有代码的最佳方法是什么 do { let school = try schoolManager.currentSchool(), schoolName = school.name return schoolName } catch { return nil } 由于除了抓取学校的名称,您实际上不需要对学校做任何事情,因此您可以: do { return try schoolManager.currentSchoo

我有以下实现,但我需要分解语句,不要使用
组合它们。重构现有代码的最佳方法是什么

do {
   let school = try schoolManager.currentSchool(), schoolName = school.name
   return schoolName
} catch {
   return nil
}

由于除了抓取学校的
名称
,您实际上不需要对学校做任何事情,因此您可以:

do {
   return try schoolManager.currentSchool().name
} catch {
   return nil
}
或者,更简洁地说,由于您没有处理
try
引发的错误,因此可以使用
try?
和可选链接,例如:

let school = try? schoolManager.currentSchool()
return school?.name


或者传播使方法抛出的错误(通常是IMO的最佳选项),或者它回避了一个问题:
currentSchool
是否抛出有意义的错误,或者它是否应该只返回一个可选的而不抛出错误。但这个答案试图解决如何简化问题中提出的语法的具体问题。
return (try? schoolManager.currentSchool())?.name