标签:
1 // swift中导入类库使用import,不再使用<>和"" 2 import Foundation 3 4 // 输出 5 print("Hello, World!") 6 7 8 // MARK: - 定义常量、变量 9 // 定义常量(使用完第一次就不能修改它了) 10 let myGender = "男" 11 12 // 定义变量 13 var carName = "BMW" 14 carName = "Audi" 15 print(carName) 16 17 // MARK: - 定义常量变量:变量类型的隐式转换 18 // 在swift中如果定义一个常量变量不给定相关的类型,它会隐式转换成你给定的初始值类型 19 let name = "Jack" // 如果这样定义出来一个常量,它会隐式转换成String类型 20 let name1 : String = "Rose" // 如果给定类型,后边赋值的时候需要根据类型进行赋值 21 let age : Int = 18 // 如果定义常量最好给出初始值,定义变量可以不给初始值 22 23 var age1 : Int? // 表示age1的类型是可选类型,其值可以为空 24 print(age1) 25 26 // 定义一个字符类型的变量 27 var ch : Character = "A" // 赋值字符类型的时候仅需一个字母即可 28 29 // 定义一个BOOL类型的变量(在swift中BOOL类型的变量只有true和false) 30 var flag : Bool = true 31 32 33 // MARK: - 字符串String 34 // 1.创建一个空的字符串 35 var str_empty = "" 36 var str1_empty = String() 37 38 // 2.判断一个字符串是否为空 39 if str_empty.isEmpty { 40 print("str_empty为空字符串") 41 } 42 43 // 3.字符串的拼接 44 var str1 = "http://" 45 var str2 = "www.baidu.com" 46 let str_New = str1 + str2 47 print(str_New) 48 print("百度网址:\(str_New)") // \(变量名)输出相关的内容【插入式取值】 49 50 // 4.获取字符串长度 51 var str3 : String = "abcdef" 52 print(str3.characters.count) 53 print("此字符串的长度:\(str3.characters.count)") 54 55 // 5.字符串的比较 56 var str4 = "wangcai" 57 var str5 = "xiaoqiang" 58 59 if str4 == str5 { 60 print("两个字符串相等") 61 } 62 63 if str4 != str5 { 64 print("两个字符串不相等") 65 } 66 67 // 截取字符串 68 var str6 = (str5 as NSString).substringWithRange(NSMakeRange(2, 4)) 69 70 71 // MARK: - 数组 72 // swift中数组中的元素类型必须相同 73 // 定义一个数组 74 var nameArray = ["yuanyuan", "fangfang", "yaoyao"] 75 print(nameArray) 76 77 var nameArray1 : Array<String> = ["weizhuang", "genie", "tianming"] 78 print(nameArray1) 79 80 // 定义一个空数组(字符串) 81 let array = Array<String>() 82 print(array) 83 84 // 访问数组中的元素 85 print(nameArray1[1]) 86 87 // 向数组中添加元素 88 var int_array = Array<Int>() 89 int_array.append(18) 90 int_array.append(20) 91 print(int_array) 92 93 // 使用运算符添加数组元素 94 int_array += [30] 95 int_array += [25] 96 print(int_array) 97 98 // 使用运算符添加多个元素 99 int_array += [40, 50, 60] 100 print(int_array) 101 102 // 插入元素到具体的位置 103 int_array.insert(99, atIndex: 1) 104 print(int_array) 105 106 // 移除某个元素 107 int_array.removeAtIndex(3) 108 print(int_array) 109 110 // 移除所有元素 111 int_array.removeAll() 112 print(int_array) 113 114 // 移除某个范围内的元素 115 int_array.removeRange(2...5) 116 print(int_array) 117 118 // MARK: - 字典 119 // 定义一个字典类型的变量 120 var dic : Dictionary<String, Int> = ["a" : 18, "b" : 20] 121 print(dic) 122 123 // 定义空字典 124 var dic1 : Dictionary<String, Int> = [:] 125 var dic2 = Dictionary<String, Int>() 126 print(dic1,dic2) 127 128 // 向字典中插入一个键值对 129 dic ["c"] = 23 130 print(dic) 131 132 // 修改字典中的内容(根据键去修改) 133 dic["a"] = 15 134 print(dic) 135 136 // 输出字典中的某个键对应的值 137 print(dic["c"]) 138 139 // 删除字典中内容(根据键去删除) 140 dic.removeValueForKey("b") 141 print(dic) 142 143 144 // MARK: - 元组 145 // 定义一个元组 146 // 方法一:直接初始化一个元组(使用swift隐式转换的特点) 147 let tuples = ("研14", ["iOS", "html5", "Android"]) 148 print(tuples) 149 150 // 方法二:显示初始化的方式 151 let tuplesNew : (String, Array) = ("研15", ["盖聂", "卫庄", "天明"]) 152 print(tuplesNew) 153 154 // 取出元组中的值 155 // 第一种取值方式:直接把元组赋值给另一个常量,根据相关标记进行取值 156 let tuplesNew1 : (classroom : String, name : Array) = tuplesNew; 157 var classInfo1 = tuplesNew1.classroom + tuplesNew1.name[0] + tuplesNew1.name[1] + tuplesNew1.name[2]; 158 print(classInfo1) 159 160 // 第二种取值方式:直接根据下标进行取值 161 var classInfo2 = tuplesNew.0 + tuplesNew.1[0] + tuplesNew.1[1] + tuplesNew.1[2] 162 print(classInfo2) 163 164 165 // MARK: - 循环 166 // 第一种形式: 167 for var i = 1; i < 10; i++ { 168 print(i) 169 } 170 171 // 第二种形式 172 for number in 1..<10 { 173 print(number) 174 } 175 176 // 第三种形式 177 for number in 1...10 { 178 print(number) 179 } 180 181 // while循环和repeat...while 182 var i = 8 183 while i > 0 { 184 i-- 185 print(i) 186 } 187 188 repeat { // 先执行一次循环体,再进行相关的循环 189 print("我爱你们") 190 }while 1 < 0 191 192 // 使用循环遍历数组 193 var animalArray = ["dog", "pig", "cat", "tiger"] 194 for animal in animalArray { 195 print(animal) 196 } 197 198 // 使用循环遍历字典 199 var animalDict = ["dog" : "??", "pig" : "??", "monkey" : "??"] 200 for (key, value) in animalDict { 201 print("key = \(key), value = \(value)") 202 } 203 204 205 // MARK: - 分支结构(if结构和switch格式) 206 // if形式 207 let flag1 = true 208 if flag1 == true { 209 print("我是真的") 210 } else { 211 print("我是假的") 212 } 213 214 // switch形式使用fallthrough实现贯穿每种可能 215 let value = 0 216 switch value { 217 case 0: 218 print("0") 219 fallthrough 220 case 10: 221 print("10") 222 fallthrough 223 default: 224 print("other") 225 } 226 227 // case后面可以使用一个范围 228 switch value { 229 case 0..<10: 230 print("输出0-10之间的数值") 231 case 10...100: 232 print("输出10-100的数值") 233 default: 234 print("other") 235 } 236 237 // case后可以使用(let和var修饰的常量或变量)[where 是满足某种条件] 238 switch value { 239 case var i where value >= 0 && value < 6: 240 i = 99 241 print(i) 242 default: 243 print("other") 244 } 245 246 // case后可以匹配一个元组 247 let point = (10, 10) 248 switch point { 249 case (10, 0): 250 print("11111") 251 case (10, 8): 252 print("22222") 253 case (_, 10): // _代表可以忽略某个元素 254 print("33333") 255 case (10, 10): 256 print("44444") 257 default: 258 print("other") 259 } 260 261 262 // MARK: - 枚举(enum) 263 // 枚举原始类型为int类型的 264 enum Direction : Int { 265 case east = 0 266 case south = 1 267 case west = 2 268 case north = 3 269 } 270 print(Direction.east.rawValue) // rawValue就是找到相对应枚举的原始值 271 272 // 枚举原始类型为String类型的 273 enum Season : String { 274 case spring = "春天" 275 case summer = "夏天" 276 case autumn = "秋天" 277 case winnter = "冬天" 278 } 279 print(Season.summer.rawValue, Season.autumn.rawValue) 280 281 // 根据原始值获取枚举的类型 282 print(Direction(rawValue: 2)) 283 284 285 // MARK: - 函数 286 // 表示函数的关键字:func 287 // 函数的类型有四种 288 // 1.无参无返 289 func function1() -> Void { 290 print("无参无返") 291 } 292 function1() 293 294 // 2.有参无返 295 func function2(name str:String) -> Void { 296 print(str) 297 } 298 function2(name: "akai") 299 300 // 3.无参有返 301 func function3() -> String { 302 return "卫庄" 303 } 304 print(function3()) 305 306 // 4.有参有返 307 func function4(num1:Int, num2:Int) -> Int { 308 return num1 + num2 309 } 310 print(function4(5, num2: 4)) 311 312 313 // 函数的返回值为元组类型 314 func function5(num1 : Int, num2 : Int) -> (Int, Int, Int) { 315 return (num1 + num2, num1 - num2, num1 * num2) 316 } 317 print(function5(9, num2: 5)) 318 319 // 外部参数和内部参数 320 // first和second是外部参数,是在函数外部使用的,在函数调用的时候会显示出来这两个名称,默认的情况下,第一个外部参数在调用的时候不显示,其余的均显示,而且和你定义的名字一样 321 // one和two是内部参数,在函数内部使用的, 322 func function6 (first one : Int, second two : Int) { 323 print((one, two)) 324 } 325 function6(first: 10, second: 2) 326 327 // 如果都不想显示外部参数:"_"的作用是忽略 328 func function7(one:Int, _ two:Int) { 329 print("忽略外部参数") 330 } 331 function7(3,5) 332 333 // 函数的嵌套 334 func test1() { 335 func test2() { 336 func test3() { 337 print("哈哈哈哈") 338 } 339 test3() 340 } 341 test2() 342 print("有点意思") 343 } 344 test1() 345 346 // inout修饰的参数 347 func test(inout name : String) { 348 name = "卫庄" 349 print(name) 350 } 351 var myName = "yuanyuan" 352 print("myName:\(myName)") 353 test(&myName) 354 print(myName) 355 356 func Test(var name : String) { 357 name = "盖聂" 358 print(name) 359 } 360 var myName1 = "yinhao" 361 print("myName1 = \(myName1)") 362 Test(myName1) 363 print(myName1)
标签:
原文地址:http://www.cnblogs.com/zhizunbao/p/5518688.html