加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift基础-0004

发布时间:2020-12-14 02:11:40 所属栏目:百科 来源:网络整理
导读:数组与字典 //: Playground - noun: a place where people can play import UIKit var str = "Hello,playground" //数组和字典 let arr = [ "a" , "b" ] println (arr) //let 声明的数组不允许改变 //var 声明的数组可以改变 //1.直接初始化数组 var arr2 =

数组与字典

//: Playground - noun: a place where people can play

import UIKit

var str = "Hello,playground"

//数组和字典
let arr = ["a","b"]
println(arr)


//let 声明的数组不允许改变
//var 声明的数组可以改变


//1.直接初始化数组
var arr2 = ["c","d"]
arr2 = ["f"]
println(arr2)

//2.先声明类型再使用赋值
var arr_init:[String]
arr_init = ["s","s"]

//3.声明类型时直接赋值
var arr_init1:[Double] = [1.00,2.00,2]

//在初始化数组时不声明类型则可以在同一数组中存放不同类型值
var arr3 = [1,"2",3.0,"C"]

//声明空数组

//1.无类型的空数组 但却无法推导其类型
var nullArry = []

//2.声明带类型的空数组
var nullArry2:[String] = []

//固定长度数组 初始化一个四位的数组 将值都设置为1
//var arr4 = [Int](count:4,repeatedValue:1)
//println(arr4)

//数组合并
var arr5 = arr2 + arr_init
println(arr5)

//数组元素的操作

println("arr5第一个元素是: (arr5[0]) 数组的长度为:(arr5.count)")

println("讲最后一个元素替换为hehe后的数组内容为")

arr5[arr5.count-1] = "hehe"

println(arr5)


//数组的区间赋值
var arrInt1 = [1,2,3,4,5]

//包括最后一个值
arrInt1[0...arrInt1.count-1] = [5,1]
println(arrInt1)
//不包括最后一个值 一定要带小于号
arrInt1[0..<arrInt1.count] = [1,5]
println(arrInt1)


//关于数组声明个数和实际赋值个数不一致情况处理

//1.声明数组数量少于实际赋值数量时
var arrInt2 = [0,1,3]

//change 声明时位数小于实际赋值时位数 则按赋值顺序进行改变插入未声明位数元素 后追加原数组未声明位数之后的元素
arrInt2[0...2] = [0,4]
println(arrInt2)


//2.改变数组数量大于实际赋值的元素数量时{注意第三位应该是2 但是因为声明改变却没有赋值则直接删除了该元素}
arrInt2 [0..<3] = [2,1]
println(arrInt2) //这里只是改变了实际的arrInt2[0...1]

//3.改变任意数组元素 只改变声明的位置元素
arrInt2[2...3] = [1,1]
println(arrInt2)


//数组追加元素
arrInt2.append(0)

//插入元素
arrInt2.insert(0,atIndex: 0)

//删除最后一个数组元素
arrInt2.removeLast()

//删除指定位数
arrInt2.removeAtIndex(0)

println("arrInt2元素 (arrInt2)")

//请空数组
arrInt2.removeAll(keepCapacity: true)

//判断数组是否为空
if arrInt2.isEmpty
{
    println("数组为空")
}

//再次追加数组
arrInt2.append(2)
arrInt2 += [3]

println(arrInt2)


//枚举数组

let people = ["张三","李四","王五"]

//遍历数组索引
for  i in 0 ..< people.count

{
    println("第(i)个元素为(people[i])")
}

//遍历值

for value in people
{
    print(value)
}
println()


//加数组索引的值遍历

for (index,value) in enumerate(people)
{
    println("第 (index) 个元素的值为 (value)")
}




//字典 类似于Java 中的Map 以 key-Value的方式存储

//1.标准创建字典和赋值的方式
var message:Dictionary<String,String> = ["name":"张三","sex":"男","old":"28"]

////2.根据推导而不直接声明字段类型
var message2:[String:String] = ["name":"如花","sex":"女","old":"18"]

//3.直接初始化
var message3 = ["name":"9527","old":"38"]

//NSMutableDictionary 是指在字典中key和value 可以类型不统一

var message4 = ["name":"张三","old":12]   //最后一个value是Int类型的

var message5:NSMutableDictionary = ["name":"张三","old":12.2]

//声明为let 的字典不可以改变

//创建空字典

//1.
var nullDict1 = Dictionary<Int,String>()
//2.
var nullDict2 = [Int,String]()

nullDict1[10] = "hehe"

println(nullDict1)



//字典的添加删除修改
var message6 = ["name":"张三","性别":"女"]

message6["性别"] = "男"
message6["old"] = "22"

println(message)

//修改上面的值除了用key的方式还可以
message6.updateValue("33",forKey: "old")

//删除一个值
message6["old"] = nil

//或者
message6.removeValueForKey("old")

println(message6)


//获取字典中的值

var person = [10:"张三",20:"李四"]
println("是谁: (person[10]!) ")


//不同数据间类型转换

message6["old"] = "21"
var age:Int? = message6["old"]?.toInt()
println(age!)

// NSObject 数组取值时 Int类型的值不需要使用可选类型变量 ?
var person2 = ["name":"张三","old":30]


//枚举字典

for (key,value) in person2
{
    println("key: (key),value: (value)")
}

//分别获取对应的key 和value

for key in person2.keys
{
    println(key)
}


for value in person2.values
{
    println(value)
}


//将key转换为数组

let keys = Array(person2.keys)

//方法2
let value = [String] (person2.keys)
println(value)







(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读