2014-11-13 50 views
0

所以。我试图在Swift中创建一个具有结构的人,我想知道如何使用我的结构实例创建一个数组。在swift中使用struct创建数组

有谁能告诉我该怎么做?

struct Person{ 
    var name: String 
    var boyOrGirl: Bool 

    init(names: String, bOg: Bool){ 
     self.name = names 
     self.boyOrGirl = bOg 
    } 
} 
var personArray: Person = [["Heine",true], ["Magnus",true]] 
+0

为什么“boyOrGirl”一个布尔?这不是真正的“真假”问题。 “你是男孩还是女孩?” “是。”...?您可以改用各种性别选项的枚举。 – mc01

回答

4

Person一个实例被创建为:

Person(names: "Heine", bOg: true) 

有2个错误代替在你的代码:

var personArray: Person = [["Heine",true], ["Magnus",true]] 
       ^^^^^^ ^^^^^^^^^^^^^^ 
  1. personArray应该是一个数组,而你宣布它作为Person
  2. 你这里做的是将含有字符串和布尔

的数组正确的语法是:

var personArray: [Person] = [Person(names: "Heine", bOg: true), Person(names: "Magnus",bOg: true)] 

请注意,变量类型[Person]可以省略,因为编译器可以推断从值分配给变量personArray类型:

var personArray = [Person(names: "Heine", bOg: true), Person(names: "Magnus",bOg: true)] 
1

你会使用:

var personArray: [Person] = [Person(name:"Heine",bOg:true), Person(name:"Magnus",bOg:true)] 

,或者因为数组类型可以推断,即使是:

var personArray = [Person(name:"Heine",bOg:true), Person(name:"Magnus",bOg:true)] 
+0

太棒了!完美的作品!谢谢 :) – Heinevolder