定义对类型而不是值进行操作的Swift函数

时间:2014-10-10 18:24:31

标签: types swift optional type-variables

在Swift中,?运算符将Types作为参数,而不是值:

var z = 42? // won't create an Optional<Int> and won't compile
var z : Int? = 42 // ? takes Int and give a Optional<Int>

如何创建自己的函数,或者使用Type而不是值的运算符?

1 个答案:

答案 0 :(得分:1)

您无法实现的目标。

但是有一种解决方法:您可以创建一个给定文字或变量的自定义运算符,将其转换为可选项。 Swift不允许在自定义运算符中使用?字符,我选择随机组合,但随意使用您自己的组合:

postfix operator >! {}

postfix func >! <T>(value: T) -> T? {
    return value as T?
}

完成后,您可以按如下方式使用它(从游乐场输出):

10>! // {Some 10}

"Test">! // {Some "Test"}