@igrssv

Swift. При формировании массива добавляется __lldb_expr что это значит?

Добрый день.
Задался вопросом изучения языка, прохожу курсы.
Уже не первый раз сталкиваюсь при работе с массивами со следующей проблемой:
600487a5f28c3952201940.png
Не пойму откуда появляется это значение. Был бы признателен за подсказку.

Код:
spoiler
//: [Previous](@previous)

import Foundation

class Animal {
    var gender: String
    
    init(gender: String){

        self.gender = gender
    }
}

class Dog: Animal {
    var name: String
    var color: String
    var size: Int
    
    init(name: String, color: String, size: Int, gender: String){
        self.name = name
        self.color = color
        self.size = size
        super.init(gender: gender)
        
    }
}

class Cat: Animal {
    var name: String
    var color: String
    var size: Int
    
    init(name: String, color: String, size: Int, gender: String){
        self.name = name
        self.color = color
        self.size = size
        super.init(gender: gender)
        
    }
}
//: [Next](@next)
var myAnimal = [Animal]()
myAnimal.append(Dog(name: "Doggi", color: "Red", size: 3, gender: "man"))
myAnimal.append(Dog(name: "Sharik", color: "Write", size: 4, gender: "man"))
myAnimal.append(Dog(name: "Bobik", color: "Black", size: 5, gender: "man"))
myAnimal.append(Cat(name: "Fandorin", color: "Black", size: 3, gender: "man"))

var myAnimalTwo = [Animal]()
myAnimalTwo.append(Dog(name: "Doggi", color: "Red", size: 3, gender: "man"))
myAnimalTwo.append(Dog(name: "Sharik", color: "Write", size: 4, gender: "man"))
myAnimalTwo.append(Dog(name: "Bobik", color: "Black", size: 5, gender: "man"))
myAnimalTwo.append(Cat(name: "Mysya", color: "Black", size: 3, gender: "man"))

var animalAny = [AnyObject]()

for item in myAnimal{
    animalAny.append(item)

}

for i in myAnimal{
    switch i {
    case _ as Dog:
        print(i)
    default:
        print("The end!")
    }
}
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
Переменная экземпляр класса. print пытается напечатать вашу переменную .
Хочет от этого экземпляра взять строковое представление.
Такого метода у класса нет. По дефолту печатает имя класса экземпляром, которого является переменная.
Ответ написан
Комментировать
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Я не специалист по свифту, но пока похоже, что язык просто не умеет писать класс Dog. Поэтому выводит какое-то свое внутреннее обозначение класса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы