Ошибка: переменная используется в собственном начальном значении с функцией type(of:)

В стандартном документе Swift от Apple:

func printInfo(_ value: Any) {
   let type = type(of: value)
   print("'\(value)' of type '\(type)'")
}

и выдает ошибку: Переменная используется в собственном начальном значении

введите описание изображения здесь

Как я могу исправить это с помощью Swift 4.1?


person quangkid    schedule 03.05.2018    source источник


Ответы (1)


Это ошибка документации. Раньше функция была typeOf. Последняя версия (не помню какая) переименовала его в type. Компилятор путается между type локальной переменной и type функцией в стандартной библиотеке Swift.

Используйте другое имя для вашей локальной переменной:

func printInfo(_ value: Any) {
   let t = type(of: value)
   print("'\(value)' of type '\(t)'")
}

Или явно обратитесь к функции:

func printInfo(_ value: Any) {
   let type = Swift.type(of: value)
   print("'\(value)' of type '\(type)'")
}
person Code Different    schedule 03.05.2018