Swift入门篇-集合

一:数组

一:可变数组 

    定义:数组使用有序列表存储相同类型的多重数据。

   格式:

 第一种格式

   var  变量: 类型[] = [变量值,变量值,...]

第二种格式

   var    变量 =[变量值,变量值,...]

  说明:

1:[变量值,变量值...]  这样表示数组 ,前提是 变量值的类型必须一值。(和其他语言有所不同)

2:上面两种格式都是定义一个数组,数组中的变量值的类型必须一致

3:第一种格式定义的数组,是直接定义数组,第二种格式定义的数组 是编译器通过类型值推导出是数组格式
注意点
1:常量关键字(let)  定义的数组,不可变数组是不能做任何修改,只能访问。

2:变量关键字(var) 定义的数组 ,可变数组可以修改,可以访问。

例子

//-------数组的定义------------

/*
1:["hello","swift"] -->[]里面包含的变量值类型都是字符串,即是字符串可变数组
2;编译器通过["hello","swift"]  来推断 arr变量的类型是字符串可变数组类型
*/

var  arr = ["hello","swift"]

/*
1:var  arr1:String[]--->直接定义arr1 是字符串可变数组类型,其数组中值必须为字符串
*/
var  arr1:String[] =  ["hello","swift"]

println("arr =\(arr),  arr1=\(arr1)")

运行结果

arr =[hello, swift],  arr1=[hello, swift]

注意点

var  str = [" hellow",11]
println("str =\(str)")

运行结果
str =(
    " hellow",
    11
)

/*
1:[" hellow",11] -->[] 变量值类型是字符串和整形,类型不一致,即不是数组
2:结果(" hellow",11) 是一个不可变数组
*/

可变数组的操作

①:数组的长度和数组变量值修改

//-----------数组的长度----

var  Arr = ["hell0","swift"]
var count  = Arr.count //count 属性 返回 数组的长度
println( "count=\(count)")

//------------数组中变量值的修改------
var  str = [81,82,85]

str[2] = 83 //str[2] 指的是数组中索引为2的变量值即85  重新赋值为83
println("str=\(str)")

运行结果:

count=2

str=[81, 82, 83]

②:可变数组的追加  +=  append

//-------数组的追加---appped()函数------------

var  arr = [1,2] //定义整形数组变量arr
arr.append(3)//append(3) 是在arr数组的尾端追加变量值3到数组中  即数组长度增加1

println(" arr = \(arr)  长度=\(arr.count)")

//-------数组的追加--- += ------------

var  arr1 = [10,11] //定义整形数组变量arr
arr1 += 12 // += 是在arr数组的尾端追加变量值3到数组中 数组长度增加1 (内部实现原理 也会用到append函数)
println(" arr1= \(arr1) 长度=\(arr1.count)")

运行结果

 arr = [1, 2, 3]  长度=3
 arr1= [10, 11, 12] 长度=3

③: 可变数组的插入 Insert(变量值 , atIndex: 索引)

//-------数组的追加 --- Insert(变量值 ,atIndex:索引)-----------

var  arr2 = [10,11]
arr2.insert(9,atIndex:0) // 在数组arr中0的位置插入变量值9 数组长度加1
println("arr2=\(arr2) 长度=\(arr2.count)")

运行结果

arr2=[9, 10, 11] 长度=3

3: 可变数组的移除  removeAtIndex(索引),removeLast()

//--------------数组的移除  removeLast() 数组尾端移除变量值----

var arr4 = [200,201,202]

arr4.removeLast() //移除数组arr3中尾端的 的变量值,数组长度减1
println(" arr4 =\(arr4)  长度=\(arr4.count)")

//--------------数组的移除  removeAtIndex(索引)数组指定位置移除变量值----

var arr3 = [100,101,102]

arr3.removeAtIndex(0)//移除数组arr3中索引为0 的变量值,数组长度减1
println("arr3 =\(arr3)  长度=\(arr3.count)")

运行结果
 arr4 =[200, 201]  长度=2
arr3 =[101, 102]  长度=2

4:创建空数组

①:定义可变空数组格式:
 变量关键字  变量  = 类型[] ()

例子: var  arr = Int[]()

注意点:
 1:常量关键字(let) 修辞的数组是不可变数组,不能修改,定义空字符数组没有意义
 2:变量关键字(var) 修辞的数组,是可变数组  实在是能动态改变的。

②:IsEmpty 函数判断数组是否为空
//-----------空数组----

/*
1: Int[] () 是整形空数组
2: arr 数组变量 被let 修辞 ,arr数组只能访问
*/

let  arr = Int[] ()

/*
1: Int[] () 是整形空数组
2: arr1 数组变量 被var  修辞 ,arr数组是可变数组,可以动态修改
*/
var arr1 = Int[] ()
arr1 += 1
println("arr1= \(arr1)")

//-----------判断数组是否为空---
var arr2 = Int[] ()

if arr2.isEmpty { //isEmpth 是判断数组是否是空数组
    println("arr2 数组为空")
}
else{
        println("arr2 数组不为空")
}

运行结果

arr1= [1]
arr2 数组为空

数组的遍历  for  in (前面文章讲过用法)

//------------数组的访问--  for  in -----

var arr = ["hello","swift"]

for str in arr {  //  for  变量 in 集合 当执行for  in的时候 集合中变量值会依次赋值给str

    println(str)
}

运行结果:

hello
swift

二:可变字典

一:可变字典

    定义:字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符

   格式:

 第一种格式

   变量  变量: Dictionary<类型,类型> = [变量值:变量值,变量值:变量值,...]

第二种格式

   变量   变量 =[变量值:变量值,变量值:变量值,...]

  说明:
例子:
第一种格式:

var  dic:Dictionary<String ,Int>= ["H1":1,"H2":2]
第二种格式:

var  dic = ["H1":1,"H2":2]

说明:
字典规范
1:[]中由 key:value 键值组成的  

2:所有key 的类型必须一直, 所有value的类型必须一致,所有key不能重复

3:第一种格式定义的字典,是直接定义字典,第二种格式定义的数组 是编译器通过类型值推导出是字典格式 

注意点:

1:常量关键字(let)  定义的字典,是不可字典,是不能做任何修改,只能访问。

2:变量关键字(var) 定义的字典 ,是可变字典,是可以修改,可以访问。

例子:

/*
1: [] 里面有key:value组成
2: 所有key的类型一直并且不重复,所有value类型一致
3:即 ["H1":1 ,"H2":2] 是一字典类型 ,编译器通过字典类型推导出 dic是可变字典
*/

var  dic = ["H1":1 ,"H2":2]
println("dic=\(dic)")

/*
1:var dic1:Dictionary<String ,Int>  直接定义可变字典类型中key 为字符串 value 为整形
2:key中字符不能重复
*/

var dic1:Dictionary<String ,Int> = ["H1":1 ,"H2":2]

println("dic1=\(dic1)")

运行结果

dic=[H1: 1, H2: 2]
dic1=[H1: 1, H2: 2]

注意点:

/*
1:[] 是有key:value 组成
2:key 类型一直,不重复,但是value 类型不一致即是不可变字典

*/

var  str = ["str":1 ,"hell0":"swift"]

println(str)

可变字典  修改值

1:updateValue(修改值, forKey key值)

2:通过[key] 来修改value 的值

//-------------通过key来修改value---updateValue(修改值, forKey  key值)

/*
1:[] 是有key:value 组成
2:key 类型一致,不充分是value 类型一致即是可变字典
*/
var  str = ["str":"aa" ,"hell0":"swift"]
str.updateValue("bb" ,forKey:"str")
println("str =\(str)")

//-------------通过key来修改value---同[key]来修改value 的值

var  str1 = ["str":"aa" ,"hell0":"swift"]
str1["str"] = "cc" //字典同key(str) 直接修改key对应value
println("str1=\(str1)")

运行结果:
str =[str: bb, hell0: swift]

str1=[str: cc, hell0: swift]

可变字典 -- 通过key 得到value的值 即value的是一个可选值。

/*
1:[] 是有key:value 组成
2:key 类型一致,不充分是value 类型一致即是可变字典

*/

var  str = ["str":"aa" ,"hell0":"swift"]
var temp = str["Str"]  //访问字典不存在的key ,返回值为nil
var temp1 = str["str"] //访问字典存在的key,返回对应的value
println("temp=\(temp),temp1 = \(temp1)")

// 总结 str[key] 返回值可能是正确,也有可能是返回nil  即 str[key] 返回值是可选值

运行结果;
temp=nil,temp1 = aa

字典的遍历  ----for  in

var  dic = ["hello":1 , "swift":2]

//  for  元组  in  字典集合  用元组来表示字典中对应的键值

for (key,value) in dic {

    println("key=\(key),value=\(value)")
}

创建一个空的可变字典

格式 :
  var  变量 = Dictionary<key类型,value类型()
//创建一个key为字符串 value 为整形的空字典,并且字典为可变字典
var arr = Dictionary<String,Int> ()

Swift入门篇-集合,布布扣,bubuko.com

时间: 2024-10-11 05:09:57

Swift入门篇-集合的相关文章

Swift入门篇-基本类型(1)

博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 今天遇到了一个很烦的事情是,早上10点钟打开电脑,一直都进入系统(我的系统  mac OS X Yosemite 10.10 系统),一直卡在登陆界面上进不去,心里想苹果新系统这么脆弱,现在很多软件不兼容就算了,搞的我还进不了系统,真是郁闷.然后在google 上搜索,google也打不开(真是悲催, 据说"组织" 要开会,大家先不要用google).然后用"度娘"搜索,搜了半天,终于找到

Swift入门篇-闭包和函数

今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 =函数名 说明: 1:函数名 表示函数地址 2:(类型)->返回值 表示函数类型 3:函数类型必须和函数名的参数和返回值一致 例子 /* 1:func 是函数关键字 2:Say是函数名,表示函数的地址 3:Say函数 参数是整形 返回值为布尔类型 */ func Say(num:Int)->Bo

Swift入门篇-循环语句

开始继续分享swift入门篇 中的循环语句. 一:循环语句 1:for 用法 2: for in 用法 3: while 用法 4: do while 用法 for 的用法 一般格式 常见格式:(for格式很多) for 变量 ; 变量<某个值 ; 变量++ 例子 // ------for 的一种用法 for var i = 0 ; i<5 ;i++ { println("i=\(i)") } //-------for 的二种用法 var j = 0 for j = 0 ;

Swift入门篇-字符串和字符

今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本类型不是清楚,请查阅. Swift入门篇-基本类型(1) Swift入门篇-基本类型(2) Swift入门篇-基本类型(3) 一:创建空字符串 //-------------定义一个空字符串第一种方法 var str1="" //-------------定义一个空字符串第二种方法 var

Swift入门篇-结构体

前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚. 一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一

swift入门篇-函数

今天给大家介绍 swift函数,swift函数和c#,js的写法大致一直,但是与object-c写法有很大不同点.废话不多说,直接开始了. 1:函数  --常量参数 func 函数名( 参数变量:类型 ,参数变量:类型...){} 说明: 1: func 是函数关键字 2:{} 函数体 3: 参数变量是默认常量类型,不能在函数函数体里面直接修改 即 func A (value:String)  与 func A (let value:String)写法是相同的,即value 是常量. 例子 /*

Swift入门篇-Hello World

提示:如果您使用手机和平板电脑看到这篇文章,您请在WIFI的环境下阅读,里面有很多图片, 会浪费很多流量. 博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 最近这2天主要升级系统和升级开发工具和去啃苹果开发文档,也时常关注一些写swift的文章.自己也边学swift,边做了一些小例子玩.个人感觉语法精炼,用起来还是很爽的. 但是个人觉得开发工具还是有很多不足(如自动提示有时候不出现),希望苹果在发布正式版的时候能修复的更好一点,在后面我会把我犯错的经历写下来. 今天

Swift入门篇-基本类型(3)

一:元组 格式 变量或常量关键字 元组变量 = ( 变量,变量, -) 说明: 1: 元组变量还是一个变量,只不过表现方式和其他变量不一样 2:()括号里面可以放入N个变量组成 例子: import Foundation /* A是元组变量,()里面放着 整形 和字符串 元组类型为 整形和字符串 组成 */ var A = (1,"swift")//元组变量A 由 整形和字符串 组成 println(A) 运行结果 (1, swift) mport Foundation var B =

Swift入门篇-基本类型(2)

现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是我也觉得语言都没有发布几天,就赶忙去翻译书籍和Swift视频,然后讲SWift语言多么优美和多么好.我个人觉得他们都没有静下心来,去敲代码和研究Swift语言到底好在那里,而急于去翻译 未免也太草率了. 今天主要分享的是 swift中基本类型的 下半部分.如果您对 SWift 中变量和常量 不是很清