swift语言
Posted 哦嘿嘿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift语言相关的知识,希望对你有一定的参考价值。
//MARK: - 定义常量变量 //定义常量(使用完一次之后就不能修改它的值了) //Swift中输出语句print print("Hello, World!") /* let myGender = "男" //定义变量 var carName = "BMW" carName = "BYD" print(carName) //MARK - 定义常量变量;变量类型的隐士转换 let name = "Jack" //如果这样子定义一个常量,他会隐士转化为string类型 //在swift中定义常量变量不给定确切的类型,隐士转化为初始值类型 let name1 : String = "Rose";//如果给定类型,后边赋值的时候需要根据类型赋值 let age : Int = 18//如果定义常量最好给出初始值;定义变量可以不给 var age1 : Int? //?表示age的类型为可选类型,其值可以为空 print(age1) //定义一个字符类型的变量 var char : Character = "A"//赋值字符类型的时候仅需一个字母即可 //定义一个bool类型d的变量 [在swift中bool类型的变量只有true或者false] var flag : Bool = true var flag1: Bool = false //======================= //======================= //MARK: - 字符串string //(1)创建一个空的字符串 var str_emperty = "" var str1_emperty = String() //(2)判断字符串为空 if str_emperty.isEmpty{ print("str_emperty is empty") } //(3)拼接字符串 var str_url = "http://" var str_urll = "www.baidu.com" let str_NewUrl = str_url + str_urll print(str_NewUrl) print("百度网址:\(str_NewUrl)\n") // \(变量名)输出相关的内容[插入式取值] //(4)获取字符串的长度 var str1 : String = "abcd" print(str1.characters.count) //(5)字符串的比较 var str2 = "aaa" var str3 = "bbb" if str2 != str3{ print("两个字符串不相等") } //====================== //====================== //MARK: - 数组 //swift中的数组元素类型必须相同 //定义数组 var nameArray = ["yuanyuan","GBLW","WYW"] print(nameArray) var nameArray1 : Array<String> = ["YQ","XQ","FatZhou"] //定义一个空数组(字符串) var array = Array<String>() print(array) //访问数组中的元素 print(nameArray[1]) //向数组中添加元素 var int_array = Array<Int>() int_array.append(520) int_array.append(123) print(int_array) //使用运算符添加数组元素 int_array += [100] int_array += [120] print(int_array) //使用运算符添加多个元素 int_array += [200,221,331] print(int_array) //插入元素到具体的位置 int_array.insert(521, atIndex: 1) print(int_array) //移除某个元素 int_array.removeAtIndex(4) print(int_array) //移除所有的元素 int_array.removeAll() print(int_array) //========================== //========================== //MARK: - 字典 //定义一个字典类型的变量 var dic : Dictionary<String,Int> = ["a":15,"b":69,"c":34] print(dic) //定义空字典 var dic1 : Dictionary<String,Int> = [:] var dic2 = Dictionary<String,Int>() //向字典中插入键值对 dic["d"] = 50 print(dic) //修改字典中的内容(根据键去修改值) dic["a"] = 90 print(dic["a"]) //删除字典中的内容(根据键去删除) dic.removeValueForKey("b") print(dic) //MARK: - 元组 //定义一个元组 //方法一:直接初始化 let tuples = ("蓝鸥1班",["ios","html5","android"]) //方法二:显示初始化的方式 let tuplesNew : (String,Array) = ("蓝鸥8班",["ios","html5","Android"]) //取出元组中的值 //第一种方式;直接把元素赋值给另外一个常量,根据相关的标记进行取值 let tuplesNew1: (classroom:String,course:Array) = tuplesNew var classInfo = tuplesNew1.classroom + tuplesNew1.course[0] + tuplesNew1.course[1] + tuplesNew1.course[2] print(classInfo) //第二种方式:直接根据下标取值 var classInfoNew = tuplesNew.0 + tuplesNew.1[0] + tuplesNew.1[1] + tuplesNew.1[2] print(classInfoNew) //MARK - 循环 //第一种形式 for var i = 1; i < 10; i++ { print(i) } //第二种形式 for number in 1..<10 { print(number) } //第三种形式 for number in 1...10 { print(number) } //while循环和repeat...while循环 var i = 8 while i > 0{ i-- print(i) } repeat{//先执行一次,在进行相关的循环 print("哈哈哈") }while 1 < 0 //适应循环遍历数组 var animalArray = ["dog","pig","cat","tiger"] for animal in animalArray { print(animal) } //使用循环遍历字典 var animalDic = ["dog":"??","pig":"??"] for (key,value) in animalDic { print("key = \(key),value = \(value)") } //MARK: - 分支结构(if结构和switch格式) //if形式 let flagl = true if flagl == true { print("艾克") }else{ print("马克") } //switch形式使用fallthrough实现贯穿每种可能 let value = 0 switch value{ case 0: print("0") case 10: print("10") fallthrough default: print("other") } //特点二:case后边可以使用范围 switch value{ case 0..<10: print("输出0-10之间的数") case 10...100: print("输出10-100之间的数") default: print("other") } //特点三:case后边可是跟变量(let和var修饰的常量或者变量)where是满足某种条件 switch value{ case var i where value >= 0 && value < 6: i = 99 print(i) default: print("other") } //特点四:case后可以匹配一个元组 let point = (10,10) switch point{ case (10,0): print("1111") case (10,18): print("2222") case (_,10): //_代表可以忽略某个元素 print("3333") case (10,10): print("4444") default: print("other") } //MARK - 枚举(enum) //枚举原始类型为int类型的 enum Direction:Int { case east = 0 case sout = 1 case west = 2 case north = 3 } print(Direction.east.rawValue)//就是找到相对应枚举的原始值 //枚举原始类型为string类型的 enum Season:String { case spring = "春天" case summer = "夏天" case autumn = "秋天" case winnter = "冬天" } print(Season.autumn.rawValue) //根据原始值获取枚举的类型 print(Direction(rawValue: 2)) //MARK: - 函数 //表示函数的关键字:func //函数的类型有:四种 //1;无返回值,无参数 func function1() -> Void{ print("无返回值,无参数") } function1() //2.无返回值,有参数的 func function2(name str:String) -> Void{ print(str) } function2(name: "蓝鸥") //3.有返回值,无参数 func function3() ->String{ return "炸天" } print(function3()); //有返回值,有参数 func function4(num1:Int,num2:Int) -> Int{ return num1 + num2 } print(function4(5, num2: 6)) //函数的返回值为元组类型 func function5(num1:Int,num2:Int) -> (Int,Int,Int) { return (num1 + num2,num1 - num2,num1 * num2) } print(function5(9, num2: 2)) //外部参数和内部参数 //first.second就叫外部参数:在函数调用的时候,会显示着两个名称 //one tow 内部参数:在函数内部使用的 //默认的情况下,第一个外部参数在调用的时候不显示,其余均显示 func function6(first one:Int,second tow:Int){ print((one,tow)) } function6(first: 10, second: 3) //如果都不想显示外部参数 func function7(one:Int,_ two:Int){ print("忽略外部参数") } function7(8, 9) //函数嵌套 func test1(){ func test2(){ func test3(){ print("哈哈哈") } test3() } test2() print("啊啊啊啊") } test1() //inout修饰的参数 func test(inout name:String){ name = "zhang" print(name) } var myName = "yuanyuan" test(&myName) print(myName)
*/ func admin(var name:String){ name = "lili" print("nameOld = \(name)") } var myName = "gaga" print("myName = \(myName)") admin(myName) print("myName = \(myName)")
以上是关于swift语言的主要内容,如果未能解决你的问题,请参考以下文章
如何将这个 Objective-C 代码片段写入 Swift?
Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题
Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题