types - 定义对类型而非值进行操作的 Swift 函数

标签 types swift option-type 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>

我如何创建自己的函数或运算符来处理类型而不是值?

最佳答案

你想实现的是不可能的。

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

postfix operator >! {}

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

完成后,您可以按如下方式使用它(来自 playground 的输出):

10>! // {Some 10}

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

关于types - 定义对类型而非值进行操作的 Swift 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305739/

相关文章:

C 类型声明 intN_t

sql-server-2005 - 版本号格式的主键 SQL 数据类型

ios - 在显示按钮之前检查是否可以进行应用内购买

ios - 如何快速读取 UITextInput 中的文本?

iOS 小部件扩展适用于 xcode,但在存档时无效

java - Jackson 序列化 可选,YAML 值为空

java - 可选接口(interface)问题

java - 描述数字最准确的 Java 类型是什么

c++ - C++ 中的类型安全类型定义

haskell - 使用 Maybe 返回函数映射和过滤 Maybe 列表