Почему я получаю ошибку «Дополнительный аргумент: студенты» в моем коде - PullRequest
0 голосов
/ 16 апреля 2019

Я получаю сообщение об ошибке, указанное в заголовке моего вопроса, и я не знаю, почему или как ее устранить? Здесь начинающий любитель Swift, поэтому, пожалуйста, объясните в понятных терминах. Большое спасибо.

struct Student {
    let firstName: String
    let lastName: String
    let grade: String
}

struct Classroom {
    let nameOfClass: String
    let students: [Student] = []
}

let student1 = Student(firstName: "Keith", lastName: "Grimes", grade: "F")
let class1 = Classroom(nameOfClass: "Swift", students: student1)

Моя конечная цель состоит в том, чтобы заполнить массив студентов типа Студент, что само по себе вводит меня в заблуждение, но я просто пытаюсь преодолеть это первое препятствие.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

студентов - это массив Student aka [Student], поэтому вам нужно сдать [student1] или изменить пусть студентов на Student

0 голосов
/ 16 апреля 2019

Вам нужно избавиться от = []

 struct Classroom {
    let nameOfClass: String
    let students: [Student]

 } 

let student1 = Student(firstName: "Keith", lastName: "Grimes", grade: "F")
let class1 = Classroom(nameOfClass: "Swift", students: [student1])

Обсуждение:

Когда вы добавляете значение по умолчанию для свойства внутри вашей структуры, оно не учитывает его в своем автоматическом методе init, плюс вы объявляете students как массив и отправляете один объект типа Student, поэтому оберните его внутрь [], если вам нужно иметь оба, вы можете добавить еще один init, как показано ниже

struct Classroom {
    var nameOfClass: String
    var students: [Student] = []

    init(nameOfClass:String,students:[Student] = []) {
        self.nameOfClass = nameOfClass
        self.students = students
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...