快速静态扩展,如c#

时间:2016-03-20 15:13:23

标签: c# swift

嗨是否有任何改变在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()

感谢您提供帮助或采取正确行动。

1 个答案:

答案 0 :(得分:0)

您可以定义具有相同名称的功能,一个是静态的,一个不是静态的。

 let some = someOptionalString.IsNilOrEmpty()

在这种情况下,如果' someOptionalString'是零,那么它不会调用函数。

word-break: break-word;