gpt4 book ai didi

swift - 如何模仿 CustomStringConvertible

转载 作者:行者123 更新时间:2023-11-30 14:06:23 24 4
gpt4 key购买 nike

如何创建一个协议(protocol)或类型,在实例化时接受所有类型的类型,如 Int、Double、String、NSDate 等(如 CustomStringConvertible)?

第一个 block 符合 CustomerStringConvertible 并且工作正常。

第二个 block (“我的方式...”)没有(我理解,但我不知道如何解决)

我应该如何实现这个?我在在线 Playground 中创建了这个(swiftStub,请参阅 http://swiftstub.com/222917135/?v=beta )

    print( "The CustomStringConvertible way")
var itemToPrint : CustomStringConvertible
itemToPrint = "Bart"
print( itemToPrint )
itemToPrint = 109
print( itemToPrint )
itemToPrint = NSDate()
print( itemToPrint )


print( "My way..doesnt work...what must I do to imitate CustomStringConvertible???")
protocol AProtocol {
var value: Double { get }
}

extension Double: AProtocol {
var value: Double { return self }
}

var myVarProtocol: AProtocol
myVarProtocol=127
print( myVarProtocol )
myVarProtocol="Bart..THIS IS NOT ALLOWED"
print( myVarProtocol )
myVarProtocol=NSDate()
print( myVarProtocol )

最佳答案

这样的东西已经存在于语言中 - AnyObjects 。然而,每当您想要调用特定类型的方法时,使用非特定类型将迫使您将其强制转换为特定类型。

关于swift - 如何模仿 CustomStringConvertible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32333660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com