搜索热词
我在
Swift中有一个字符串变量:
let foo = "bar"
但它也可以是任何其他任意字符串.现在我想做以下事情:
let bar = ... // either the value of foo,or if foo is "",it will be "default"
我抬头看“合并运算符”,看来这是正确的方向.我用以下代码尝试了它:
let bar = foo ?? "default"
但似乎当foo为空时,它仍将采用此方法,并且它不会将默认设置为值.
我假设合并运算符只能使用nil值而不能使用空字符串.但是,有没有一个解决方案,我可以测试我的值为空字符串,并指定一个默认值?我不能使用if / else,因为它将位于一个类中.
解决方法
“和”之间有区别.因此,您将foo定义为“bar”,因此它是非可选的,因此它永远不会返回nil.听起来你需要的是三元运算符:
let bar = foo.isEmpty ? foo : "default"
另外,为了扩展返回true的答案,你可以创建一个运算符来同时考虑可选字符串和空字符串:
infix operator ???? {} func ???? (lhs: String?,rhs: String) -> String { if let s = lhs { if !s.isEmpty { return s } } return rhs }
总结
以上是编程之家为你收集整理的为一个空的非零字符串合并Swift运算符全部内容,希望文章能够帮你解决为一个空的非零字符串合并Swift运算符所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206