嗨是否有任何改变在Swift中编写静态扩展名,就像在C#中一样?我的意思是在C#中,我可以写同样的东西:
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
并将其称为:
var s = ""; var x = s.WordCount();
我知道我可以在swift中做同样的事情,但它只适用于类类型。在静态类型上,我必须写一些类似的东西:
var str:String?
let s = String.IsNilOrEmpty(str)
此扩展程序:
extension String {
static func isNilOrEmpty(str: String?) -> Bool{
if str == nil {
return true
}
if str!.isEmpty{
return true
}
return false
}
}
是否有变化可以这样称呼:
let s = str.IsNilOrEmpty()
感谢您提供帮助或采取正确行动。
答案 0 :(得分:0)
您可以定义具有相同名称的功能,一个是静态的,一个不是静态的。
let some = someOptionalString.IsNilOrEmpty()
在这种情况下,如果' someOptionalString'是零,那么它不会调用函数。
word-break: break-word;