为了运行我的脚本,我正在检查10条字符串,使其不是空的。我怎样才能合理地分解它,使其停留在一个函数内?我的剧本依赖于所有这些都是真实的,这是相当长的,所以我不能单独询问每一个。它适用于6个或6个以下的名字。但从名称7-10,我得到了一个错误时,我的应用程序。
if (name[1] != "") && (name2[1] != "") && (name3[1] != "") && (name4[1] != "") && (name5[1] != "") && (name6[1] != "") && (name7[1] != "") && (name8[1] != "") && (name9[1] != "") && (name10[1] != "")我知道这个错误:
编译器无法在合理的时间内键入此表达式;尝试将表达式拆分为不同的子表达式
。
发布于 2020-04-27 16:05:40
像这样编号变量名是一个很大的危险。他们应该在一个数组里。
您要寻找的是Sequence.allSatisfy(_:),它返回true当且仅当序列中的所有成员都满足所提供的谓词:
let names = [name[1], name1[1], name2[1], ... name10[1]] // this is madness, get rid of these numbered variables
let allNamesArentEmpty = names.allSatisfy { !$0.isEmpty }
if allNamesArentEmpty { ... }https://stackoverflow.com/questions/61462566
复制相似问题