swift复合类型

 1、元组类型 (tuple)

元组就是多个元素的组合,是一个用圆括号括起来分号分隔的多个数据的一个集合体.

例如:定义一个学生变量,要求姓名 jim,年龄 19,性别 male 的元组变量为 

   //元组的显示定义.

  var stu(String,Int,String) = (name:"jim", age:19,gender: "male")   

 

  //元组的隐式定义,隐式定义自动识别元素类型,stu的类型为(String,Int,String).  

  var stu = ("jim", 19, "male")  

 

Swift 还提供了一种方式用来分解元组隐式定义,可以将元组类型中的每一个数据分解到单个变量中

例如:

  var (name, age, gender) = stu

如果分解的时候只需要一部分数据,可以使用下划线来占位,表示忽略该数据

例如:只需要学生姓名与性别,可以使用

  var (name, _, gender) = stu

 

使用元组变量访问成员的时候,可以使用索引或别名. 

1 var stu = (name:"jim", age:19, gender:"男")
2 print("姓名:\(stu.0),年龄:\(stu.1),性别:\(stu.2)")
3 print("姓名:\(stu.name),年龄:\(stu.age),性别:\(stu.gender)")

 

 

2、可选类型(可空类型)
在 Swift 中提供了一种类型,允许其值为空( nil ),那么该类型的值可以是数据,也可以是一个 nil 定义可选类型的就是在类型后加上一个问号即可.

例如:

  var num : Int? = 123

  num = nil

如果定义可选类型后没有初始化,那么会自动初始化为 nil

如果要获取可选类型中的数据,可以使用强制解包的方法,就是在变量后加上一个惊叹号,也称为强制解包

例如:

  print(num!)

这里可以使用一个if语句判断解包

  if num != nil {

       print(num!)

  } else {

     print("存储 nil, 无法解包")

  }

 

如果肯定变量是非 nil 的, 可以使用下面的方式解包数据

  var num : Int?

  var res : Int! = num //这里的res就是num解包后的数据

 

3、数组类型
Swift 中也提供了数组类型,用于存储多个数据. 声明数组的语法是:

  var 标识符 : [元素类型]
或者
  var 标识符 : Array<元素类型>

这里创建数组,如果是使用的 var 那么就是长度可变的数组;如果使用的是 let 就 是长度不变的数组.

数组字面值就是使用方括号括起来,用逗号连接的数据集合.

例如:

  // 这是一个长度为 4 的, 元素为 Int 的可变数组

  var arr = [1, 2, 3, 4]

  // 这是一个长度为 3 的,元素为 String 的不可变数组

  let arr = ["a", "b", "c"]

  • 简单的数组元素操作
  • 1)使用 [下标] 可以对可变数组元素进行读写操作
  • 2)使用加号 ( + ) 可以连接两个数组
  • 3)使用 count 属性获得数组长度
  • 4)使用 isEmpty 属性判断 count 是否等于 0
  • 5)使用 append() 方法追加元素
  • 6)使用 += 追加数据
  • 7)使用 arr[left ... right] 来修改数组内容与长度
  • 8)使用 insert(_: atIndex:) 来插入数据
  • 9)使用 removeAtIndex(_:) 来删除数据
  • 10)使用 removeLast() 来删除并返回最后一个元素 

 

4、字典
除了使用数组,Swift 还提供了字典数据类型,来存储键值对数据.

与 Foundation 中的 NSDictionary 和 NSMutableDictionary 的功能类似.

创建字典数据使用语法: 

  var dic : [ keyType : valueType ]

或者

  var dic : Dictionary<KeyType, ValueType> 

 

字典的字面量是,将用冒号连接的键值数据用逗号连接起来,在放入方括号中来 表示

  var stus = [ "001" : ("张三", 19, "男"), "002" : ("李四", 20, "男"), "003" : ("小红", 18, " 女")]

同理使用 let 就是不可变字典,需要注意的是,字典是无序的

  • 简单的字典操作
  • 1)使用 [键值] 访问与键绑定的数据
  • 2)使用 count 属性获得字典中有多少条数据
  • 3)使用 isEmpty 属性判断字典是否为空
  • 4)使用 [:] 创建一个空字典
  • 5)使用 updateValue(_: forKey:) 方法,利用键更新值,并返回更新前的数据
  • 6)使用 removeValueForKey(_:) 方法删除并返回数据 
posted on 2015-07-01 20:54  lizzie8023  阅读(240)  评论(0编辑  收藏  举报