我想知道的是Swift是否有类似的东西.
考虑这个构成的场景……
class FauxInt{ init(_ initialValue:Int) { value = initialValue } var value:Int}let fauxInt = FauxInt(14)
这些是我想要做的事情……
let realint:Int = fauxIntsomeFuncTakingAnInt(someInt:fauxInt)
同样,转换为Int应该隐含意味着期望Int的任何地方,我可以使用或传递FauxInt.
有没有办法让上述成为可能?
解决方法 Swift不支持隐式转换 – 最接近的等价是通过额外的构造函数完成的.所以要将Double转换为Int:let i: Int = Int(myDouble)
在您的情况下,您可以定义Int的扩展以创建一个新的init,它将fauxInit作为参数:
extension Int { init(_ myFaux: FauxInt) { self = myFaux.value }}let fauxInt = FauxInt(14)let realint = Int(fauxInt)总结
以上是内存溢出为你收集整理的在Swift中,是否可以为类类型创建隐式转换?全部内容,希望文章能够帮你解决在Swift中,是否可以为类类型创建隐式转换?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)