Swift学习--常量.变量.数据类型的使用(二)
一.Swift中的数组
//Swift中的数组 //NSArray *arr = @["",""]; //和OC数组的区别就是去掉前面的@ let arr11 = ["zhangsan", "lisi"] print(arr11) // 遍历每一个元素 for a in arr11 { print(a) } // 像 OC 一样打印 print(arr11 as NSArray) // 数组中保存的都是字符串 let arr = ["zhangsan", "lisi"] // 数组中保存的是 NSObject let arr1 = ["zhangsan", 1] // 定义只能保存字符串类型数组 var array: [String] // 初始化数组 array = ["zhangsan"] // 添加元素 array.append("lisi") print(array) // 删除元素 array.removeAtIndex(1) print(array) // 删除所有元素 array.removeAll(keepCapacity: true) print(array.capacity) // 注意数组容量的变化 for i in 0..<10 { array.append("\(i)") print("\(array) --- \(array.capacity)") } // 实例化新的数组 var array2 = [String]() array2.append("1") array2.append("2") // 拼接数组 array += array2 print(array)
二.Swift中的字典
//创建字典 //@{@"key":"value"}; //Swift中创建字典和创建数组一样,用[] //[String : NSObject]类型是用以后做ios开发中最常见的一种格式 let dict = ["name":"张三","age":30] //获取value dict["name"] //遍历字典 for key in dict.keys { print(dict[key]) } //利用元组类型遍历字典,会自动将字典高中的key赋值给元组中的第一个变量,将value赋值给元组中的第二个变量 //注意:第一个是key,第二个value for (kk , vv) in dict { print(kk) print(vv) } var dict2 = [String: AnyObject]() //新增key/vale //如果对应的key在字典中没有,那么就会新增 dict2 = ["name":"李四","age":20] dict2["sex"]="man" dict2 // 设置相同 key,之前的数值会被覆盖 dict2["name"] = "钱六" dict2 //删除 dict2.removeValueForKey("name") dict2 //合并字典 var dict3 = ["score":100] for (key,value) in dict3 { dict2[key] = value } dict2 var dict4 = ["address":"厦门市"] for (key,value) in dict4 { dict2.updateValue(value, forKey: key) } dict2
三.Swift中的字符串
//Swift中的字符串 //在OC中定义字符串用@"" Swift中"" //注意点:OC中的字符串是NSString Swift中的字符串是String //OC 中的字符串是一个对象,继承于NSObject //Swift中的字符串是一个结构体 //Swift中的字符串的性能比OC中的高 var str: String = "张三" //拼接 var str2 = "cool" str += str2 //格式化 let num8 = 30 let name = "wangwu" //目标: name = wangwu , age = 30 //在Swift中可以使用\()来拼接其他值 var str3 = "name = \(name),age = \(num8)" //09:08:07 //注意:所有的值都必须放到数组中,哪怕只有一个值也需要放到数组中 var str4 = String(format: "%02d: %02d: %02d", arguments: [9,8,7]) //截取 //注意:在Swi中,如果需要截取字符串,建议使用OC中的字符串来截取,因为Swift中String的字符串截取方法使用起来非常复杂 //Swift中的字符串可以和OC中的字符串非常方便的进行转换 var str5: NSString = "张三 哈哈哈" var str6 = "张三 答复发" as NSString var subStr = str5.substringWithRange(NSMakeRange(1, 3)) //在Swift中的字符串是支持直接遍历的 var str7 = "www:baidu.com" for c in str7.characters { print(c) }
四.Swift中的函数
//Swift中的函数 /* Swift定义函数的格式: 语义:将前面计算的结构返回值 ->返回值 func 函数名称(参数列表)->返回值 { 执行代码 } */ //没有返回值的参数 //如果函数没有返回值,就写Void //如果函数没有返回值还可以简写 //1.()替代Void //2.可以省略->() ->Void func say() -> Void { print("hello world") } say() func say2() -> () { print("hello world") } say2() func say3() { print("hello") } //有返回值没有参数 func getNumber() -> Int { return 999 } print(getNumber()) //有参数没有返回值 //-(void)sum:(int)a b:(int)b //Swift2.0中,会自动将形参中的第二个参数开始的参数名成为便签,以便于提高简读性 //Swift2.0以前,不会这样 func sum(a: Int, b: Int) { print(a + b) } sum(10, b: 20) //添加标签,添加外部参数 //x/y称之为外部参数, a/b称之为内部参数 func sum2(x a: Int,y b: Int) { print (a + b) } sum2(x: 10, y: 20) //有参数有返回值 func sum4(a: Int , b: Int )->Int { return a+b } print(sum4(10, b: 20))