Swift基础语法&&入门教程_字符串,数组_字典
1,字符串 在swift中,字符串默认的类型是String,而不是NSString 在swift中是一个结构体,效率高,支持快速遍历 NSString是继承自NSObject,是一个OC对象,不支持快速遍历 //对字符串的快速遍历 var string:String = "hello playground,大家好" for cin string { print(c) } //字符串的拼接 let string1 = string +"hello" let i =100 let view = UIView() view.backgroundColor = UIColor.redColor() print(string1 + "(i) (view.backgroundColor)") let frame = CGRectMake(100,100,100); print("区域(frame)") //格式拼接: [NSSting stringWithFormat:] let string2 = String(format:"%02d:%02d:%02d",arguments: [1,5,10]) //取子串范围使用 String 和 Range ->取子串的时候 let myString ="hello" //在myString中取出前三个字符 let subString = myString.substringWithRange(Range<String.Index>(start: advance(string.startIndex,0),end: advance(string.startIndex,3))) 使用推荐:在swift中如果要结合range一起操作,建议先把私服穿转换成NSString,再进行处理,如下 let myString2:NSString ="hello" myString2.substringWithRange(NSMakeRange(0,3)) 2,数组 使用中括号[]来定义 定义的数组类型是[String],表示数组中只能存放字符串 在OC中数组分可变和不可变, 在swift中: let不可变,var可变 let array1 = ["zhangsan","lisi"] //数组的遍历 for ain array1 { print(a) } var array2 = ["aaa","bbb"] //添加元素(不可变的数组无法添加元素) array2.append("ccc") //如果定义数组时,指定的对象类型不一致,则其类型是[NSObject] var array3 = ["zzz",11,"123"] for ain array3 { print(a) } 在OC中,如果需要向数组中加数字,需要转换成NSNumber 在swift中,可以直接添加 (万物皆对象) 同常在开发时,不建议在数组中使用不同类型的数据,使用起来不太方便,可能需要转换,如下 for ain array3 { let string ="hi (a)" print(string) } 数组的定义和初始化 //定义,但是没有初始化 var array4:[String] //初始化一个字符串的可变数组 array4 = [String]() array4.append("hello") array4.append("world") print(array4.capacity)//容量为2 //删除数据,keepCapacity,是否保持容量 array4.removeAll(keepCapacity:true) print(array4.capacity) //不论是否保存容量,再次追加元素的时候,每次超过容量,容量直接在现有容量的基础上 *2 //在实际开发中,绝大多数,数组的容量是固定的,需要注意保持容量,以及声明的时候,指定容量 for iin 0...10 { array4.append("(i)") print("(array4):(array4.capacity)") } 3,字典 定义一个字典,任然使用方括号[] 以下代码定义的字典类型是[String:NSObject] 在目前swift版本中,定义字典通常使用[String:NSObject] //大多数情况下,key的类型是固定的 let dict = ["name":"zhangsan","title":"boss","age":18] //遍历字典(注意:k,v随便写,前面是键key,后面是值value) for (k,v)in dict { print("(k) -- (v)") } 可变字典:var 不可变字典:let //定义字典,并且实例化 var dict1 = [String:NSObject]() //设置内容 dict1["name"] = "laowang" dict1["age"] =80 print(dict1) //注意:如果key已经存在,设置数值时,会覆盖之前的值,字典的键不会重复 dict1["name"] = "abc" print(dict1) //删除内容(根据键删除值) dict1.removeValueForKey("age") print(dict1) //合并字典 var dict2 = ["title":"boss"] //利用循环来进行合并 //遍历dict2 for (k,v)in dict2 { //跟新指定key的value //如果不存在key,会新建,并且设置数值 //如果key存在,会覆盖值 dict1.updateValue(v,forKey: k) } print(dict1) //dict2de 值不变 print(dict2) 4,函数 定义函数 OC的风格: - (void)函数名(参数){} swift函数定义格式 func函数名(参数列表) ->返回值{//代码实现} "->"是swift特有的,表示前面的执行结果输出给后面的 func sum(a:Int,b:Int) ->Int { return a + b } sum(10,20) //强制填写参数,使用#,可以在调用函数的时候,增加参数 //会让代码提示更直观,符合OC程序员的习惯 func sum1 (#a:Int,#b:Int) -> Int { return a + b } sum1(a:10,b: 20) 如果没有返回值,"->返回值"可以省略,或者也可以写成下面的格式: -> Void -> () func demo (a:Int) -> (){ print(a) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |