微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift 基础笔记四数组

// 数组
// shoppingList变量被声明为“字符串值类型的数组“,记作[String]。 因为这个数组被规定只有String一种数据结构,所以只有String类型可以在其中被存取。 在这里,shoppinglist数组由两个String值("Eggs" 和"Milk")构造,并且由字面量定义
var shopingList:[String] = ["Eggs","Milk"];

//由于 Swift 的类型推断机制,当我们用字面量构造只拥有相同类型值数组的时候,我们不必把数组的类型定义清楚。 shoppinglist的构造也可以这样写
var shopingList2 = ["Eggs","Milk"];


// 访问和修改数组
// 使用数组的只读属性count来获取数组中的数据项数量
println("一共存在 \(shopingList.count) 个商品")

// 检查是否为空
if shopingList2.isEmpty {
    println("数组为空")
}else{
    println("数组不为空")
}

// 可以使用append方法在数组后面添加新的数据项
shopingList2.append("Dog")


// 除此之外,使用加法赋值运算符(+=)也可以直接在数组后面添加一个或多个拥有相同类型的数据项

shopingList2 += ["M"]

// 通过下标获取值
shopingList2[0]

// 通过下标来修改值
shopingList2[0] = "eGGS"


// 改变多个值
// 从下标1至下标三,替换为赋值的值
shopingList2[1...3] = ["Enda","Yuan"]

// 调用数组的insert(atIndex:)方法来在某个具体索引值之前添加数据项
shopingList2.insert("Chaina",atIndex:3)

// 使用removeAtIndex方法来移除数组中的某一项
shopingList2.removeAtIndex(1)

// 移除最后一项 使用 removeLast
shopingList2.removeLast()

// 数组遍历
for item in shopingList2{
    println(item)
}

// 加上索引遍历
// 如果我们同时需要每个数据项的值和索引值,可以使用全局enumerate函数来进行数组遍历。enumerate返回一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历
for (index,value) in enumerate(shopingList2){
    println("index:\(index) value:\(value)")

}
shopingList2

// 我们可以使用构造语法来创建一个由特定数据类型构成的空数组
var someInt = [Int]()

someInt.append(3)

someInt

someInt = [] // someInts 现在是空数组,但是仍然是[Int]类型的

// Swift 中的Array类型还提供一个可以创建特定大小并且所有数据都被认的构造方法。我们可以把准备加入新数组的数据项数量(count)和适当类型的初始值(repeatedValue)传入数组构造函数

var threeDoubles = [Double](count: 3,repeatedValue:0.0)

threeDoubles


// 因为类型推断的存在,我们使用这种构造方法的时候不需要特别指定数组中存储的数据类型,因为类型可以从认值推断出来

var another = Array(count:3,repeatedValue:2.5)

// 最后,我们可以使用加法操作符(+)来组合两种已存在的相同类型数组。新数组的数据类型会被从两个数组的数据类型中推断出来:

var sixDoubles = threeDoubles + another

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐