使用数组中的数组 - Swift
Working with an array within an array - Swift
我有很多书。
书籍有标题和字符。
角色有名字和年龄。
Book 和 Character 都是结构体。
当我的应用程序启动时,会创建一组默认图书(用户稍后也会添加自己的图书。
这是我的基本代码:
(注意:???? 是我无法解决的代码的占位符。)
struct Character {
var name: String
var age: Int
}
struct Book {
var title: String
var characters: [Character]
}
var books: [Book] = []
func createBooks() {
books.append(Book(title: "My Book1", characters: ????)
}
我知道我可以创建一个字符数组并用
赋值
books.append(Book(title: "My Book1", characters: [character[0], character[3]])
但我担心在大量书籍中处理两个单独的数组会变得太困难,更不用说用户创建的书籍了。
我该如何最好地处理这个问题?
你的问题有点不清楚,但我会这样做。
struct Character {
var name: String
var age: Int
}
struct Book {
var title: String
var characters: [Character]
}
var books: [Book] = []
func createBooks() {
let character1 = Character(name: "John", age: 24)
let character2 = Character(name: "Sarah", age: 18)
books.append(Book(title: "My Book1", characters: [character1, character2]))
}
这样你就有了一个定义良好的结构,然后你可以像这样循环你的书:
for book in books {
// Do something with book
}
你可以像这样遍历每本书的所有字符:
for book in books {
for character in book.characters {
// Do something with character
}
}
我也非常同意 Leo Dabus 的评论,您应该将 Character 结构的名称更改为其他名称,例如 BookCharacter,以避免代码中的 char 和 Character 混淆。
我有很多书。 书籍有标题和字符。 角色有名字和年龄。 Book 和 Character 都是结构体。
当我的应用程序启动时,会创建一组默认图书(用户稍后也会添加自己的图书。
这是我的基本代码:
(注意:???? 是我无法解决的代码的占位符。)
struct Character {
var name: String
var age: Int
}
struct Book {
var title: String
var characters: [Character]
}
var books: [Book] = []
func createBooks() {
books.append(Book(title: "My Book1", characters: ????)
}
我知道我可以创建一个字符数组并用
赋值books.append(Book(title: "My Book1", characters: [character[0], character[3]])
但我担心在大量书籍中处理两个单独的数组会变得太困难,更不用说用户创建的书籍了。
我该如何最好地处理这个问题?
你的问题有点不清楚,但我会这样做。
struct Character {
var name: String
var age: Int
}
struct Book {
var title: String
var characters: [Character]
}
var books: [Book] = []
func createBooks() {
let character1 = Character(name: "John", age: 24)
let character2 = Character(name: "Sarah", age: 18)
books.append(Book(title: "My Book1", characters: [character1, character2]))
}
这样你就有了一个定义良好的结构,然后你可以像这样循环你的书:
for book in books {
// Do something with book
}
你可以像这样遍历每本书的所有字符:
for book in books {
for character in book.characters {
// Do something with character
}
}
我也非常同意 Leo Dabus 的评论,您应该将 Character 结构的名称更改为其他名称,例如 BookCharacter,以避免代码中的 char 和 Character 混淆。