由於我是一個完整的初學者,我甚至不知道我是否問正確的問題。但我無法理解,爲什麼「用戶(名稱: 」約翰...)「 中的代碼for循環的一部分工作成員初始化程序如何在Structs中工作? (在斯威夫特)
CASE1
struct User
{
let name: String
let company: String
let login: String
let password: String
static let database: Dictionary<String, User> = {
var theDatabase = Dictionary<String, User>()
for user in [
User(name: "John Appleseed", company: "Apple", login: "japple", password: "foo"),
User(name: "Madison Bumgarner", company: "World Champion San Francisco Giants", login: "madbum", password: "foo"),
User(name: "John Hennessy", company: "Stanford", login: "hennessy", password: "foo"),
User(name: "Bad Guy", company: "Criminals, Inc.", login: "baddie", password: "foo")
] {
theDatabase[user.login] = user
}
return theDatabase
}()
}
,但是這並未「T
CASE2
struct User
{
let name: String
let company: String
let login: String
let password: String
for user in User(name: "John Appleseed", company: "Apple", login: "japple", password: "foo"){
print(user)
}
}
爲了理解ħ ow CASE1作品我運行了這個代碼的簡單版本,即CASE2。儘管在兩種情況下都發生了完全相同的事情,[關於User(.. arguments ..)]我在第二種情況下出現錯誤「Declaration Expected」。 Sir Paul(斯坦福大學cs193p)表示這是一個相當簡單的數據庫,但我一直試圖找出這個問題超過6個小時。
明白了。謝謝。 – 209135