import Foundation //&&&&&&&&&&&&&&&&& Swift里面以空格表示结束.&&&&&&&&&&&&&&&&&& /* // 这种定义方式定义后,后面的值只能是字符串. let name : String = "王亮"; // 隐士类型推断, 由初始值来推断常量的类型 let gender = "男"; let 王朗 = "缺德"; let ?? = "笑"; // 使用let定义的常量的值永远不能改变 //定义变量 var age = 100 var height : Int = 140 //Swift在定义一个变量或者常量的时候,必须要有确定的类型. let a : Int = 10 let b : String = "Hello" let c : Character = "A" let flag : Bool = false let d : Bool = true; //注意:值永远不会被隐士转换为其他类型 , 如果需要转换.请显示转换; //不可以将两个不一样类型的变量或常量直接进行四则运算. 需要写成 :变量 (常量) A + 目标类型 B let name1 = "Lanou‘s age is " let age1 = 3; let words = name1 + String(age1) print(words) // 运算符重载. 加法运算的时候会自动拼接到一起. */ //let string = "好的" ////创建一个值为空的字符串 //let string1 = "" //let string2 = String() //print(string1) //var var_str = "Hello lanou" //var empty_str1 = "" //var empty_sty2 = String() // //if empty_str1.isEmpty //{ //print("empty_str1 is empty") //} //字符串链接 //创建字符串变量 //var var_str = "http://" //var_str += "www.lanou3g.com" //print(var_str) // ////创建字符串常量 . 注意常量不能被修改 //let con_str = "Hello" ////获取字符串的长度 //let length = con_str.characters.count //print(length) //字符串插值 //let mul = 3.0 //let content = "\(mul)*2.5 = \(mul*2.5)" //print(content) //字符串比较 //let name3 = "xiaohao" //let name2 = "lanou3g" //if name3 == name2 //{ //print("\(name3)equals\(name2)") //} //else{ //print("not equal") //} // //// 练习一 // 创建两个String类型的变量, 初始值为"a" "b", 并交换两个变量的值. //var smile = "a" //var cay = "b" //var ww = "" // //ww = smile //smile = cay //cay = ww // //print(ww) //print(smile) //print(cay) // %%%%%%%%%%%%%%%%数组%%%%%%%%%%%%%%%% //let array = ["张三", "李四", "王五"]; //print("赵六\(array)") // //// 如果数组里面保存的数据不是同一类型的, 那么数组的类型是NSObject的. //var array1 = ["王德亮", "大波", "鹏辉", 401] //print("array1") //// 提前指定数组的数据类型. //var array2 : [Int] = [1, 2, 3] // //// Swift中可以通过直接访问数组下标 改变数据的值 //array1[3] = "付东" // //// 向数组中追加一个元素. //array1.append(401) //// 使用运算符加载 向数组中追加一个元素. //array1 += [502] //// 插入一条数据 //array1.insert("小鹏辉", atIndex: 2) // //let array5 = ["1", 2] //// 想数组中插入一个集合类型的数据 (这个集合要和数组是同一类型) //array1.insertContentsOf(array5, at: 2) // 删除全部 //array1.removeAll() // 从头开始删两个 //array1.removeFirst(2) // 全删 但是保留内存 //array1.removeAll(keepCapacity: true); // 删除最后一个元素 //array1.removeLast() // 删除某一位置的元素 //array1.removeAtIndex(1) // 从几删到几 //let range : Range = Range.init(start: 1, end: 4) //array1.removeRange(range) //print(array1) //%%%%%%%%%%%%%%%%%%%%字典%%%%%%%%%%%%%%%%%%%%%% // 定义一个字典 //let dictionary = ["a" : 1, "b" : 2] //print(dictionary) //// 如果字典里的key的类型不同 , 那么key的类型就是NSObject //let dictionary1 = ["a" : 1, 2 : "b"] //print(dictionary1) //// 提前指定key和value的类型 创建一个字典 //let dictionary2 : [Int : String] = [1 : "a", 2 : "b"] //print(dictionary2) //// 可以直接通过key值访问字典中的元素 //print(dictionary2[1]) // //// 可变 // //var dictionary3 = ["小萨摩" : "大花猫", 114 : 111] //// 修改 //dictionary3["小萨摩"] = "大波" //// 不存在的话 , 就会插入 //dictionary3["蛋蛋"] = "建国" //// 让某一个key值为Nil 表示删除掉这个key和对应的value //dictionary3[114] = nil //print(dictionary3) // 交换数组中下标的值. //var array = [NSObject]() //array += ["胡波"] //array.append("王德亮") //print(array) // //let string = array[0] //array[0] = array[1] //array[1] = string //print(array) //@@@@@@@@@@@@@@@@@@@@@@@@ 元祖 @@@@@@@@@@@@@@@@@@@@@@@@ //let type = ("王的来", ["联通", "污唐"]) //print(type) //print(type.0)//通过下标 // //let type1 : (String, Int) = ("赵四", 100) //print(type1) //// 通过赋值来取值 //let type2 : (name : String, age : Int) = type1 //print(type2.age) // 练习 // //var dictionary = ["number" : 12, "name" : "张飞", "gender" : "男", "age" : 24] //var stuarray = [dictionary] // //var type = (dictionary) //var type1 = (stuarray) //print(type) //print(type1) //#################循环结构 分支结构################ //for (var i = 0; i < 100; i++){ //print(i) //} //1...10闭区间 包括10. 1..<10 半开区间,不包括10 //for i in 1...10{ //print(i) //} //var array = ["dog", "??", "cat"] //for a in array //{ //print(a) //} //var dictionary = ["wangwang" : "dog", "doudou" : "cat"] //for (b, c) in dictionary //{ //print(b, c) //} //var number = 0 //while number < 10{ // print(number) // number++ //} //var number1 = 0 //repeat{ //number1 += 1 //print(number1) // //}while number1 < 10 // //if 1 == 1 //{ //print(1) //} // 可选值 , 在变量的类型后面加一个问号 , 表示这个变量为可选类型, 可以被置为nil; //var a : String? = nil; //var string : String? = "asda" //if (string != nil) //{ //} // //let age = 3 //// Swift 里面 每一个case里自带一个break //// 如果想要贯穿的话, 可以用fallturough关键字.. //switch age{ //case 1: // print("age = 1") //case 2: // print("age = 2") //case 3: // print("age = 3") // fallthrough //case 4: // print("age = 4") //default: // print("age = 5") // //} //// 可以根据区间获取值 // //switch age{ //case 0...10: // print("粗跟博") //case 11...20: // print("大屁股") //case 21...30: // print("mengwang") //default: // print("老变态") //} // // //var a = 0 //// switch可以在case里面添加where条件判断. //switch a { //case var value where a < 10 && a > 0: // value++ //print(value) //default: // print("error") //} //let point = (10, 100) //// 对一个元祖做判断 "_"表示忽略这个位置的元素 //switch point { //case (10, 10): // print("第一象限") //case (_, 10): // print("一,四象限") //case (10, _): // print("一,三象限") //case (_, _): // print("爱在哪在哪") //} //print(point) //%$$$%$%$%$%#$%@!% 函数 [email protected]#$!$%#$!#$%^!#$! //无参无返 //无参有返 //无参有多个返回值 //有参无返 //有参有返 //有参有多个返回值 //inout函数 // 函数定义格式 // func + 函数名 (参数列表) -> 返回值类型 {} // 返回值类型不写 表示无返回值 //func text() -> Void { //print("我是一个无参无返回值得函数") //} //text() // //// 无参有返 //func text1 () ->String //{ //return "我是一个无参有返的函数" //} //let string = text1() //print(string) // // //// 有参 无返回值 //func text2(name : String, age : Int) { //print("爱打架阿道是\(name) 年龄是\(age)") //} //text2("黄军", age: 100) // 有参有返回值 //// 参数是一个字符串和Int 返回一个数组 //func text3(name : String, age : Int) ->Array<NSObject> //{ // let array : Array<NSObject> = [name, age] // return array //} //print(text3("zha", age: 404)) // //// 函数的外部参数名 第一个名字表示外部参数名, 当外界使用这个函数的时候只有的名字, 第二个参数表示内部参数名,当函数里面使用这个参数的时候使用的名字. //func text4(number myNumber : Int, name myName : String){ //print("我的名字是\(myName), 我的号码是\(myNumber)") //} //text4(number: 100, name: "赵子龙") // // //// 无参有多个返回值的 //func text4() -> (String, Int) { //return ("张三", 108) //} //let type = text4() //print("\(type.0), \(type.1)") // 有参有多个返回值 //func text5(name : String, age : Int) ->(String, Int) //{ // return(name, age) //} //let type1 = text5("zhang", age: 10) //print("\(type1.0), \(type1.1)") //////////函数嵌套 //func text6(){ // func text1(){ // print("第一层") // func text2(){ // print("第二层") // func text3(){ // print("第三层") // } // text3() // } // text2() // } // text1() //} //text6() // // /////////////////////////// inout 函数///////////////////// ////Swift中的函数 本身是使用let定义的, 是不能更改的 如果想要更改可以使用var定义 //func text7(inout name : String){ //name = "赵四" //} //var name = "" //text7(&name) //print(name) //let type = (2, 8) //switch type{ //case (_, 1...5): // print("呵呵呵") //case (_, 5...7): // print("嘿嘿嘿") //default: // print("滚滚滚") //}
时间: 2024-10-11 23:05:41