arrays - 为什么我的代码中出现错误“额外参数:学生”
问题描述
我收到问题标题中提到的错误,我不知道为什么或如何解决它?在这里开始 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)
我的最终目标是填补一系列学生类型的学生,这本身就让我感到困惑,但我只是想克服这第一个障碍。
解决方案
你需要摆脱= []
struct Classroom {
let nameOfClass: String
let students: [Student]
}
let student1 = Student(firstName: "Keith", lastName: "Grimes", grade: "F")
let class1 = Classroom(nameOfClass: "Swift", students: [student1])
讨论:
当您在 struct 中为属性添加默认值时,它不会将其视为自动init
方法,另外您声明students
为数组并发送单个类型的对象,Student
因此将其包装在里面[]
,如果您需要两者都可以添加另一个初始化,如下所示
struct Classroom {
var nameOfClass: String
var students: [Student] = []
init(nameOfClass:String,students:[Student] = []) {
self.nameOfClass = nameOfClass
self.students = students
}
}
推荐阅读
- python - 如何在 Pandas 数据框中用均值替换 NaN 值?
- php - 我应该在 PHP 中使用生产环境还是开发环境?
- textbox - Docx4j 将 docx 转换为 pdf 并且不出现文本框
- sql-server - 如何连接两个 SQL Server 表
- c# - 如何在 WPF 中的组合框选择上禁用扩展器?
- drupal - Drupal 6站点重新索引没有发生
- git - 将分支从 svn 移动到 git
- python - 如何使用 Python 列出 .txt 到 .csv 格式的字符串?
- jquery - 数据表过滤器服务器端 Laravel
- mysql - SSIS - 设置 MySQL 连接管理器(具有 SSH 隧道)