Конвертируемость разных типов в CustomDebugStringConvertible в Swift ⇐ IOS
-
Гость
Конвертируемость разных типов в CustomDebugStringConvertible в Swift
I don't understand when will an upcast to CustomDebugStringConvertible succeed. In the following example, errorClass and myEnum don't compile. But what is causing the failure? Why the other two (errorStruct and errorEnum) work?
struct ErrorStruct: Error {} class ErrorClass: Error {} enum MyEnum { case hello case world } enum ErrorEnum: Error { case myError } let errorStruct = ErrorStruct() print((errorStruct as CustomDebugStringConvertible).debugDescription) let errorClass = ErrorClass() print((errorClass as CustomDebugStringConvertible).debugDescription) let myEnum = MyEnum.world print((myEnum as CustomDebugStringConvertible).debugDescription) let errorEnum = ErrorEnum.myError print((errorEnum as CustomDebugStringConvertible).debugDescription)
Источник: https://stackoverflow.com/questions/781 ... e-in-swift
I don't understand when will an upcast to CustomDebugStringConvertible succeed. In the following example, errorClass and myEnum don't compile. But what is causing the failure? Why the other two (errorStruct and errorEnum) work?
struct ErrorStruct: Error {} class ErrorClass: Error {} enum MyEnum { case hello case world } enum ErrorEnum: Error { case myError } let errorStruct = ErrorStruct() print((errorStruct as CustomDebugStringConvertible).debugDescription) let errorClass = ErrorClass() print((errorClass as CustomDebugStringConvertible).debugDescription) let myEnum = MyEnum.world print((myEnum as CustomDebugStringConvertible).debugDescription) let errorEnum = ErrorEnum.myError print((errorEnum as CustomDebugStringConvertible).debugDescription)
Источник: https://stackoverflow.com/questions/781 ... e-in-swift
Мобильная версия