gpt4 book ai didi

swift - replacementOccurrences 通过使用选项数组引发错误

转载 作者:行者123 更新时间:2023-12-03 18:07:30 25 4
gpt4 key购买 nike

有人可以解释一下以下代码片段之间的区别吗?
我不明白为什么第二个会抛出错误。

这个有效:

"Anno 1800".replacingOccurrences(of: "N", with: "#", options: [.regularExpression, .caseInsensitive], range: nil)

但是这个给出了一个错误:

let optionsArr = [NSString.CompareOptions.regularExpression, NSString.CompareOptions.caseInsensitive]
"Anno 1800".replacingOccurrences(of: "N", with: "#", options: optionsArr, range: nil)

error: StringExtensions.playground:110:63: error: cannot convert value of type '[NSString.CompareOptions]' to expected argument type 'String.CompareOptions' (aka 'NSString.CompareOptions') "Anno 1800".replacingOccurrences(of: "N", with: "#", options: optionsArr, range: nil)

最佳答案

请仔细阅读错误消息。

cannot convert value of array something to expected argument type non-array something.

嗯,OptionSet数组 的语法非常相似,我们将逗号分隔的项目括在方括号中。

不幸的是,它们是不同的。要按字面指定 OptionSet,您必须注释类型以避免歧义。

let optionsArr : String.CompareOptions = [NSString.CompareOptions.regularExpression, NSString.CompareOptions.caseInsensitive]
"Anno 1800".replacingOccurrences(of: "N", with: "#", options: optionsArr, range: nil)

指定类型后,您可以编写表达式swiftier

let optionsArr : String.CompareOptions = [.regularExpression, .caseInsensitive]

第一个版本之所以有效,是因为编译器足够聪明,可以推断出类型

关于swift - replacementOccurrences 通过使用选项数组引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61580752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com