[英]How to get object (self) generic type in extension swift?
我正在制作使用 Set 擴展名將 Set 轉換為數組的函數。 但是我無法在該擴展中獲得通用類型的 Set。 例如,如果有一個 String 類型的 Set 對象,那么 toArray() 函數應該返回一個 String ( [String] ) 數組。 我正在像這樣創建這個函數。
extension Set{
func toArray() -> [/*What type should take*/]{
var array = [/*What type should take*/]()
for s in self{
array.append(s)
}
return array
}
}
// Here is what I am expecting from the above func.
var myset = Set<String>()
let arr = myset.toArray() // Should return [String]
使用Element
來獲取它的 Generic 類型很簡單
extension Set{
func toArray() -> [Element]{
var array = [Element]()
for s in self{
array.append(s)
}
return array
}
}
您可以使用Element
來獲取元素類型,但是實際上並不需要這個擴展,因為您可以簡單地說let arr = Array(mySet)
如果您確實想使用擴展程序,您可以將其簡化為:
extension Set {
func toArray() -> [Element] {
return Array(self)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.