/*
* 《Swift 的数组 (Array)的声明和 数组的基本操作详解 和 元组(Tube) 的声明和使用》
*/
// Created by 周双建 on 15/12/17.
// Copyright © 2015年 周双建. All rights reserved.
//
/*******************************************************/
//数组的声明和初始化
@H_502_39@ /*数组是用来保存同一类型的一组数据元素。可为向其存入基本数据类型和对象。
*/
@H_502_39@ //第一种 @H_502_39@ var One_Array = ["成功","勤奋",27)">努力"] @H_502_39@ print(One_Array) @H_502_39@ /*这声明了一个 One_Array 的数组,并给其赋值,同时它也通过付给它的值定义了类型
*/
@H_502_39@ // 第二种 @H_502_39@ var Two_Array : [Int] @H_502_39@ Two_Array = [] @H_502_39@ /*
这是定义了 Two_Array 的数组,并指明数组元素的类型,同时,将其初始化为一个空的数组。
第三种
@H_502_39@ var Three_Array = [Int]() @H_502_39@ /*其作用和第二中,是一样的
*/
// 第四种 是正规的写法
@H_502_39@ let Four_Array = Array <String>() @H_502_39@ print(Four_Array)// let Foeu = Array < Int> ()
// 第五种 构造方法
@H_502_39@ var Five_Array = [Int]() @H_502_39@ Five_Array.append(3) @H_502_39@ print(Five_Array) @H_502_39@ /** 打印 :[3]
// 第六种 指定信息创建数组
@H_502_39@ /** count 指定初始化数组的个数
* repeatedValue 指定初始化每个元素的值
*/
@H_502_39@ var Six = [Int]( count: 5,repeatedValue: 520) @H_502_39@ for temp in Six { @H_502_39@ print(temp) @H_502_39@ } @H_502_39@ print(Six) @H_502_39@ /** 打印:520
520
[520,520,520]
第七种
@H_502_39@ var Seven_Array = Array(count: 5,repeatedValue: "成功") @H_502_39@ print(Seven_Array) @H_502_39@ /** 打印: ["成功","成功","成功"]
*/
// 总结: 1、 使用一个数组必须进行初始化。初始化的时候可有元素。可没有单要用 [] 代替
// 2、 必须指定数组的类型,可显示指示和不显示(自动识别)
/*************************************************************/
// 数组的基本操作
// 我们声明 我们的操作数组
@H_502_39@ var CZ_Array = Array < Int > () @H_502_39@ CZ_Array = [1,22,13,24,35,46]// 1、 数组元素的访问。下标方法
@H_502_39@ print(CZ_Array[2]) @H_502_39@ /** 打印: 13
// 2、获取数组的个数
@H_502_39@ print(CZ_Array.count) @H_502_39@ /** 打印: 6
// 3、判断 数组 是否包含某个元素
@H_502_39@ print(CZ_Array.contains(22)) @H_502_39@ /** 打印: true
// 4、判断数组是否为空
@H_502_39@ // 第一中 @H_502_39@ if CZ_Array.count == 0 { @H_502_39@ print("数组为空") @H_502_39@ }else{ @H_502_39@ print("数组不为空") @H_502_39@ } @H_502_39@ // 第二种 @H_502_39@ if CZ_Array.isEmpty { @H_502_39@ print("数组不为空") @H_502_39@ }
//5、修改数组的元素
@H_502_39@ // 第一种 @H_502_39@ CZ_Array[2] = 520 @H_502_39@ print(CZ_Array) @H_502_39@ /** 打印: [1,22,24,35,46]
// 第二种 (批量修改数组)
@H_502_39@ CZ_Array[1...3] = [110,119,121] // 修改 数组 1 -- 3 的元素 @H_502_39@ print(CZ_Array) @H_502_39@ /*
* 打印:[1,110,119,121,0)"> // 6、 数组的遍历
// 第一种 for
@H_502_39@ for ( var i = 0 ;i < CZ_Array.count ;i++){ @H_502_39@ print(CZ_Array[i]) @H_502_39@ }// 第二种 for...in
@H_502_39@ for temp in CZ_Array { @H_502_39@ print(temp) @H_502_39@ }// 第三种 for + 元组
@H_502_39@ for (index,temp) in EnumerateSequence(CZ_Array) { @H_502_39@ print("\(index):\(temp)") @H_502_39@ }/* 打印: 0:1
1:110
2:119
3:121
4:35
5:46
注意: 这样写法,已经改为上面的写法了
for (index,temp) in enumerate(CZ_Array) {
print("\(index):\(temp)")
}
// 7、数组的插入
// 第一种 append
@H_502_39@ CZ_Array.append(520110) @H_502_39@ print(CZ_Array) @H_502_39@ /*// 第二种 insert....atIndex
@H_502_39@ CZ_Array.insert(567,atIndex: 1) @H_502_39@ print(CZ_Array) @H_502_39@ /**/
@H_502_39@ // 第三种 @H_502_39@ var Other_Array = [1,2,3] @H_502_39@ CZ_Array += Other_Array @H_502_39@ print(CZ_Array) @H_502_39@ /** 注意: 使用 += 方法 后面必须是对象(其他,要记得转换)
*/
// 8、 删除数组的元素
@H_502_39@ // 第一种 @H_502_39@ CZ_Array.removeAtIndex(2)
@H_502_39@ // 第二种 @H_502_39@ CZ_Array.removeFirst(2) @H_502_39@ print(CZ_Array)
/* 从开始位置起 2 个元素进行删除*/
@H_502_39@ // 第三种 @H_502_39@ CZ_Array.removeFirst()
/* 从开始位置起 1 个元素进行删除*/
@H_502_39@ // 第四中 @H_502_39@ CZ_Array.removeLast()
/* 数组的最后一个元素进行删除*/
@H_502_39@ // 第五种
// CZ_Array.removeAll(keepCapacity: true)
/* 移除所有的,保存占位元素*/
@H_502_39@ // 第六种 @H_502_39@ CZ_Array.removeRange(Range<Int>(start: 1,end: 2))
/*******************************************************************************/
//下面,我们讲解数据类型和自定义数据类型和数据之间的转化
// 1、 整形: 是没小数部分的数字
@H_502_39@ let My_Int = 520 @H_502_39@ print(My_Int)// 所有整形的数值的范围
print("int8:\(Int8.max) \n int16:\(Int16.max) \n int32:\(Int32.max)\n int64:\(Int64.max)")
@H_502_39@ /** 打印: int8:127
int16:32767
int32:2147483647
int64:9223372036854775807
// 2、 自定义类型
@H_502_39@ typealias QQSize = uint @H_502_39@ typealias ZS = Int8 @H_502_39@ typealias STR = String@H_502_39@ var Str :STR = "成功QQ吧" @H_502_39@ print(Str)
// 3、元组 Tube
@H_502_39@ /** 元组是将多个不同类型的值组合成一个符合值赋值给一个变量或者常量。经常作为返回值,可以返回多个类型
// 定义一个元组
@H_502_39@ var YZ_Tube = ("吧",3) @H_502_39@ print(YZ_Tube)
// 读取元组里面的数据
@H_502_39@ print(YZ_Tube.0)
//使用命名进行定义一个元组
@H_502_39@ let Other_Tube = (name_Tube:"4) @H_502_39@ print(Other_Tube.name_Tube)
// 进行元组的分解,进行匹配
@H_502_39@ var (ZSJ_Name,ZSJ_Count) = YZ_Tube @H_502_39@ print("\(ZSJ_Name) + \(ZSJ_Count)")
@H_502_39@ var (BN_name,_ ) = YZ_Tube @H_502_39@ print("\(BN_name)")
// Do any additional setup after loading the view,typically from a nib.
@H_502_39@ }
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@H_502_39@ }