当前位置: 首页 > news >正文

做优惠卷网站做app和做网站哪个容易

做优惠卷网站,做app和做网站哪个容易,寿光网站建设公司,网站开发案列Swift快速入门#xff08;一#xff09;之 Swift基础语法近期重新学习了一遍Swift语言#xff0c;主要以《Swift编程权威指南#xff08;第2版#xff09;》为教程#xff0c;学习过程中结合比对Java语言特性将学习心得作为三篇笔记#xff1a;Swift基础语法#xff0c…Swift快速入门一之 Swift基础语法近期重新学习了一遍Swift语言主要以《Swift编程权威指南第2版》为教程学习过程中结合比对Java语言特性将学习心得作为三篇笔记Swift基础语法Swift面向对象编程Swift高级编程。本文为第一篇《Swift基础语法》主要涵盖以下内容类型、常量和变量if-else条件语句switch语句数 整数和浮点数循环 for和while字符串可空类型数组 Array集合 Set字典 Dictionary类型、常量和变量//常量的声明 let //声明一个Int常量,常量一旦声明后不可变化 let num:Int 2019 print(num)//变量的声明 var //声明一个字符串变量声明一个名为name的变量其类型是String初始值是”Tom“ var name:String Tom//总结对必须变化的实例用变量其他都用常量//Switf支持类型推断声明变量或常量时无需声明类型编译器会根据初始值内容进行推断 let n 2019 //根据2019内容自行推断 实例n的类型为Int let firstName Nik var lastName Lily print(n)Swift中数 分为 整数和浮点数整数 Int 64位浮点数Float 32位Double 64位整数操作符加减乘除、—、*、/取余 %swift//1. 整数类型的变量的声明var i1:Int 10var f1:Float 10.0 //32位var d1:Double 10.0 //64位//2. 类型转换// Java中两个不同精度的数值相加会自动转换为较高精度但Swift中需要手动转换类型使之匹配//let number i1 f1 //不同类型数据相加 在swift中会异常let number Double(i1) d1print(str)print(number)//3. 浮点数//浮点数Float 32位Double 64位//浮点数默认的类型推断是 Doublelet n2 1.98print(type(of: n2)) //输出结果 Double## 条件语句 #### if-else 由特定的条件逻辑执行代码,通常要处理一个非此即彼的状况 swift let age 18 if age 18{print(成年人) }else {print(未成年人) }if-else if 的使用let age 58 if age 18{print(未成年人) }else if age55 {print(青壮年) }else {print(老年人) }if-else 嵌套语句let age 88 if age 18{if age60{ //print(老年人)}else{print(成年人)} }else {print(未成年人) }三目运算 理解为简化版 if-else使用a?b:c “如果a为真,则执行b;否则执行c”let age 20 var result age 18 ? 成年人 : 未成年人; print(result)逻辑运算符 逻辑与当且仅当两者都为真时结果为真 || 逻辑或两者任意之一为真结果为真逻辑非真变假假变真switch语句:用于处理多重条件的情况区别if else用于处理”非此即彼“的情况swith用于处理多重条件的情况ps:先上结论switch语句特性每个case分支后不需要breakswift语句中 default分支不是必需的fallthrough 状态转移语句会先执行自己分支代码后再把控制权转移到下面紧挨着的分支case 匹配值 支持区间 如 case 1…100 表示 1到100的区间内case 匹配值可支持 多个case 匹配值可使用where条件子句swith 使用汇总var code 401 var erroInfo:String erro code is: switch code { case 200,201,202:print(Http success ) case 300...399: //...区间print(300系列错误) case let code where (code 400 code 499) : //where语句的使用筛选条件erroInfo (code) 400系列错误 // fallthrough //不需要匹配进入下一个分支并执行代码 default:erroInfo (code) //字符串插值print(其他错误) }关于switch语法使用一一道来switch语句var httpcode400 switch httpcode{ case 200:print(httpcode) case 400:print(httpcode) default:print(default) }switch分支可以使用多个值var httpcode400 switch httpcode{ case 200:print(httpcode) case 400,401,402:print(服务器异常) default:print(default) }switch可以是一个值多个值区间var httpcode322 switch httpcode{ case 200:print(httpcode) case 300...399:print(httpcode) case 400,401,402:print(服务器异常) default:print(default) }值绑定字符串插值占位符var httpcode322 var resultstr switch httpcode{ case 200:resultstrOK case 300...309:resultstrredirect:(httpcode) case 400,401,402:resultstrclient erro:(httpcode) case let unkwnowncode:resultstr(unkwnowncode) is not known erro code }default 语句(不是必需的)var httpcode800 switch httpcode{ case 200:print(httpcode) case 300...399:print(httpcode) case 400,401,402:print(服务器异常) default:print(default httpcode:(httpcode)) }用where语句创建筛选条件var httpcode:Int 205 switch httpcode{ case 200:print(httpcode) case 300...399:print(httpcode) case 400,401,402:print(服务器异常) case let unknowcode where (unknowcode201 unknowcode208): //指定httpcode 范围print(unknowcode where httpcode:(httpcode)) //where default:print(default httpcode:(httpcode)) }元组和模式匹配元组是把具有逻辑关联的两个或多个变量的组合组合的结果是一个有序列表var httpCode200 var msgmessage: switch httpCode{ case 200:msg成功 case 300...399:msg重定向 case 400,401,402:msg服务器错误 default:msg未知 } let erro(httpCode,msg) //访问元组 erro.0 erro.1 //通过序号访问元组元素 //1.9给元组的元素别名 let erro2(code:httpCode,erroInfo:msg) erro2.code erro2.erroInfo用元组做模式匹配var firstCode:Int201 var secondCode:Int404 let erro(firstCode,secondCode) switch erro{ case (201,400):print(201,400) case (200,_):print(200,_) case (_,404):print(_,404) default :print(default) }switch 和 if-elsevar age23 switch age{ case 18...28:print(年轻人) default:print(age :(age)) //default 语句 } //使用if-case替代不需要写不关注的default分支更关注核心代码逻辑 var age23 if case 18...28age{print(年轻人) }var age26 if case 18...28age,age25{print(大于25岁的年轻人) }循环for循环while 循环for-in 循环的用法var number:Int 0; for i in 1...5{ //遍历 1至5 // print(i)number 1print(number) }不需要迭代器i的用法for _ in 1...5 {number 1print(number) }带where语句的for-in循环for i in 1...10 where i % 3 0 {print( 能被3整除的数(i)) }while循环的使用var number:Int 3 while number 0 {print( while 循环 (number))number - 1; }repeat-while 循环相当于java中的 do-while循环repeat{print(number)number 1 }while number 3break和continue的区别break终结当前所处层的的循环continue终结当前这一次循环swiftfor i in 1…10{if(i3){break}print(i)}print(“continue的区别”)for i in 1…10{if(i3){continue //跳过3}print(i)}## 字符串 swift var str Hello, playground //声明字符串变量 let str1 Hello var str2 : String HELLO 2 str2.append( swift) //累加str ! //给可变字符串添加 print(str) print(str.count) //获取字符串的长度 print(str.contains(str1)) print(str.starts(with: str1)) //print(st) print(str2)可空类型 Optional可空类型Optional是Swift的独特特性用来指定某个实例没有值。一个可空类型的实例要么已经可用要么没有值就称为nil。声明可空类型通过这种方式编译器知道实例是否可能为nil,这种显示的声明让代码更具表达力也更安全。var erroInfo :String? //声明可空类型 print(erroInfo) //输出nil //erroInfo test erroInfo test print(str) //输出 ”Swift“ print(erroInfo) //输出 Optional(test)增加条件语句if erroInfo ! nil {let theErro erroInfo! //感叹号的作用是强制展开可空类型print(theErro) //输出test }可空类型的示例绑定if let theErrors erroInfo {//当erroInfo不为nil 则给theErrors赋值并执行当前代码块print(theErrors) }展开多个可空实例var code : Int? code 401 if let theError erroInfo, let theCode code {print(展开多个可空实例)print(theCode)print(theError) }else {print(不满足) }展开多个可空实例,和额外检查if let theError erroInfo, let theCode code, code 402 {print(展开多个可空实例)print(theCode)print(theError) }隐式展开可空实例隐式展开可空实例的类型用 !声明相比普通可空类型它不需要展开表示要比普通可空类型更有信心但存在着危险性如果可空实例没有值访问其值会导致运行时错误var erroCodeInfo:String! erroCodeInfo no data print(erroCodeInfo info is (erroCodeInfo))可空链式调用可空链式调用运算符 ?.与可空绑定类似可空链式调用提供了一种对可空实例进行查询以判断其是否包含值的机制。可空链式调用允许把多个查询串联为一个可空实例的值如果查询链中任意可空实例是nil,则返回nilvar erroInfo nil //当 erroInfow不为空则转为大写为空则返回nil var erroInfoUp erroInfo?.uppercased() // print(erroInfoUp) //原地修改可空实例 var newErroInfo erroInfo?.appending(6666) print(newErroInfo)nil合并运算符nil合并运算符 ??从可空实例中获取值或者使用默认值//要么获取值要么默认值 let des erroInfo ?? no data print(des)数组 Array数组是有序的//数组的两种声明方式 var data:ArrayString //声明一个字符串数组 var datas2:[String] //声明一个字符串数组var arrs2:[String] [xx,yy] //初始化数组 var arrs [a1] //数组声明的类型推断 print(arrs) arrs.append(appenData) print(arrs) arrs[0] ap arrs[1] d2 //替换指定下标的元素 print(arrs) print(数组长度count (arrs.count)) arrs arrs2 //两个数组相加 print(arrs) print(------指定位置插入一个元素 EN-------) arrs.insert(EN, at: 2) print(arrs) print(arrs[0...2]) //打印下标前三的元素var newArr [xx,yy] //判断两个数组是否相等数组是有序的需元素顺序和内容完全一致才算相等 print(newArr arrs2) print(常量数组 一旦创建不可修改) let finalArrays [a,b] print(finalArrays) //finalArrays[0] 66集合 set集合是无序、元素唯一//初始化一个集合 var hashSet SetString() //声明一个String类型的集合 var set1:Set [a,b,c] print(set1)//集合增加元素 hashSet.insert(a) hashSet.insert(b) print(hashSet) 循环遍历插入 for i in 4...8 {hashSet.insert(number (i)) } //print(hashSet)//包含指定元素 hashSet.contains(a) print(hashSet.contains(a)) //print(hashSet.contains(set1))//并集 union let newSet hashSet.union(set1) print(newSet)//交集 intersection,返回两个集合的共同部分的集合 let intersectionSet hashSet.intersection(set1) print(intersection (intersectionSet))//不相交判断两个集合是否不相交 相交则返回false let isDisjointSet hashSet.isDisjoint(with: set1) print(isDisjointSet)字典 DictionaryDictionary 使用键值对key-value pair组织其内容Dictionary的键值必需是唯一的Dictionary字典的四种初始化方式var dict1 : DictionaryString , Integer [:] var dict2 :[String:Integer] [:] var dict3 DictionaryString,Integer() var dict4 [String : Integer]()字典初始化的类型推断var dict :DictionaryString,Int [Tom:12 , Jerry:18] var dict2 [Tom:12 , Jerry:18]字典value的修改var dict :DictionaryString,Int [Tom:12 , Jerry:18] //var dict2 [Tom:12 , Jerry:18] //字典初始化的类型推断 print(dict)访问和修改字典内容 ,key类型默认应为可空的数据n类型 print(dict[Tom]) //输出内容为 Optional(12) print(dict[jj]) //输出内容为 nil dict[Tom] 66 //修改字典的值 print(dict[Tom]) dict.updateValue(99, forKey: Jerry) //使用updateValued方法修改字典中指定键的值新建字典元素//print(新建字典元素) //如字典中key为“Jake”的元素不存在则新建否则则修改 //测试发现字典是无序的插入的字典值不一定在字典的最末也可能插入到中间 //dict[Jake] 25 //print(dict) 删除字典元素 //print(删除字典元素:removeValue(forkey: ..)) //dict.removeValue(forKey: Jake) //print(dict)循环遍历字典//循环遍历字典 for (key,value) in dict{print(The name is (key), age is (value)) }//遍历字典键值 for key in dict.keys {print(the dict key is (key)) }//只遍历字典的值 for value in dict.values {print(the dict value is (value)) }声明常量字典,不可再进行编辑let album [he:11 , me:99 , she:88] print(album.count)把字典转为数组 Arrayvar keys Array(dict.keys) print(keys) //[Tom, Jerry] var values Array(dict.values) print(values) //[12, 18]value为数组的字典//创建一个字典用于存储程序开发需要语言如 key为ios,value为 [Objective-c,Swift] print(创建一个字典用于存储程序开发需要语言) var codeDict [ios:[Objective-c,Swift] , android:[java,kotlin]] print(codeDict)
http://www.sadfv.cn/news/412917/

相关文章:

  • 做游戏网站的目地百度代理服务器
  • 青岛网站seo收费广州品牌型网站建设
  • 科技有限公司网站建设策划书安娜尔返利机器人怎么做网站
  • 网站建设与网页设计论文网站建设公司那记号
  • 太平洋手机官方网站舟山网站设计
  • 石家庄网站建设远策科技app软件下载免费
  • 嘉兴型网站系统总部wordpress文章标签
  • 工信部网站备案查通知昆明网站制作报价
  • 电子商务网站建设概述国内专门做酒的网站
  • 石家庄市城乡建设部网站做网站怎样做才有百度快照
  • 梧州网站建设做视频网站付费版
  • 做旅游网站的开题报告怎么查网站是那个公司做的
  • 广州cms建站系统怎么制作个人求职网站
  • 免费域名 网站法律网站模板
  • 搭建电商网站wordpress 打开速度
  • 免费网站建设公司推荐公司网站的作用
  • 做网站关于创新的app程序制作
  • 大千设计装饰有限公司西安网站seo报价
  • 重庆网站建设重庆最加科技站酷logo设计
  • 用cms做网站的缺点wordpress vps优化
  • 韩城建设公司网站gta5线下买房网站建设
  • 北京产品网站设计哪家专业wordpress本地怎么搬家
  • php和ASP网站那个好网络广告策划流程
  • 集团门户网站建设费用校区网站建设
  • 网站建设思路方向python基础教程第三版
  • html网页设计环保网站wordpress批量修改图片src
  • 网站的排版包括什么久久建筑网官网登录
  • 金溪做网站推广公司服务内容
  • 公司做网站的费用记什么科目合肥网站建设设计公司
  • 定州哪里可以做网站网站建设内容清单