相关疑难解决方法(0)

是否可以在Swift中创建一个通用的闭包?

func myfunc<T>(i:T) -> T {
    return i
}
Run Code Online (Sandbox Code Playgroud)

是否有可能使这个泛型函数成为一个闭包?

let myfunc = { <T>(i:T) -> T in
    return i
}
Run Code Online (Sandbox Code Playgroud)

这不起作用......

generics closures ios swift

24
推荐指数
3
解决办法
8417
查看次数

为什么[SomeStruct]不能转换为[Any]?

考虑以下:

struct SomeStruct {}

var foo: Any!
let bar: SomeStruct = SomeStruct()

foo = bar // Compiles as expected

var fooArray: [Any] = []
let barArray: [SomeStruct] = []

fooArray = barArray // Does not compile; Cannot assign value of type '[SomeStruct]' to type '[Any]'
Run Code Online (Sandbox Code Playgroud)

我一直试图找到这背后的逻辑,但没有运气.值得一提的是,如果将结构更改为类,则可以完美地运行.

总是可以添加一个变通方法并映射fooArray的每个对象并将它们转换为Any类型,但这不是问题.我正在寻找一个解释为什么这样做的样子.

有人可以解释一下吗?

这个问题让我想到了这个问题.

arrays swift swift-structs swift2.2

16
推荐指数
1
解决办法
557
查看次数

标签 统计

swift ×2

arrays ×1

closures ×1

generics ×1

ios ×1

swift-structs ×1

swift2.2 ×1