我想创建一个像这样的函数:
func getStride(_ type: T.Type) {
return MemoryLayout<type>.stride
}
但是doesn't work。
我希望能够这样称呼它:
getStride(Bool) //=> stride value
如果不是那样,那么也许是这样:
getStride(Bool.self)
想知道是否有这种可能。
答案 0 :(得分:5)
您必须定义一个泛型函数,然后可以使用传递给该函数的相同类型来引用MemoryLayout<T>
:
func getStride<T>(_ type: T.Type) -> Int {
return MemoryLayout<T>.stride
}
print(getStride(Bool.self)) // 1
print(getStride(Double.self)) // 8