版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Swift5.1官方教程\h2020-02-Swift教程(Swiftprintprint("Hello,//打印Hello, \h
varvarmyVariable=myVariable=letmyContant= letletimplicitInteger=letimlicitDouble=letexplicitDouble:Double=创建⼀个显式类型为创建⼀个显式类型为Float且值为的常数4 leta:Double=letlabelletlabel="ThewidthisletwidthLabel=label+尝试StringBinaryoperator'+'cannotbeappliedtooperandsoftype'String'and Binaryoperator'+'cannotbeappliedtooperandsoftype'String'and
letletapples=letappleSummary="Ihave\(apples)letfruitSummary="Ihave\(apples+oranges)piecesof⽤于
IIsaid"Ihave3AndthenIsaid"Ihave8piecesofletquotation=Isaid"Ihave\(apples)AndthenIsaid"Ihave\(apples+oranges)piecesof
varshoppingList=["catfish","water",shoppingList[1]="bottleofvaroccupations=["Malcolm":"Captain","Kaylee":"Mechanic",occupations["Jayne"]="PublicletletemptyArray=letemptyDictionary=[String:
shoppingListshoppingList=occupations=if和switch⽤于条件语句 for-repeat-while是可选的。其中的程序要 for-repeat-whileletletindividualScores=[75,43,103,87,varteamScore=forscoreinindividualScoresifscore>50teamScore+=}elseteamScore+= //Prints
ifscoreifscore{...
varvaroptionalString:String?=print(optionalString==//PrintsvaroptionalName:String?="Johnifletname=optionalNamegreeting="Hello,更改optionalName为nil。你会得到什么问候?添加⼀个elseoptionalName是nil
letletnickName:String?=letfullName:String="JohnletinformalGreeting="Hi\(nickName??letletvegetable="redswitchvegetablecaseprint("Addsomeraisinsandmakeantsonacase"cucumber",print("Thatwouldmakeagoodteacaseletxwhereprint("Isitaspicyprint("Everythingtastesgoodin//Prints"IsitaspicyredSwitchmustbe 因此不需要在每个case的代码末尾显式使⽤break退出switch。forfor-letletinterestingNumbers="Prime":[2,3,5,7,11,"Fibonacci":[1,1,2,3,5,"Square":[1,4,9,16,varlargest=for(kind,numbers)ininterestingNumbersfornumberinnumbersifnumber>largestlargest=//PrintsletinterestingNumbers=["Prime":[2,3,5,7,11,"Fibonacci":[1,1,2,3,5,"Square":[1,4,9,16,varlargest=for(kind,numbers)ininterestingNumbers{varlargestOfKind=0fornumberinnumbers{ifnumber>largest{largest=numberifnumber>largestOfKind{largestOfKind=numberprint("Thelargestnumberin\(kind)isprint("ThelargestnumberisThelargestnumberinSquareisThelargestnumberinFibonacciisThelargestnumberinPrimeisThelargestnumberis
varvarm=repeat m*=}whilem<//Prints foriin0..<4total+=//Prints
--funcfuncgreet(person:String,day:String)->Stringreturn"Hello\(person),todayisgreet(person:"Bob",day:删除 funcgreet(_person:String,onday:String)->String{return"Hello\(person),todayis\(day)."varmax=varsum=forscoreinscores{max=score}elseifscore<min{min=scoresum+=return(min,max,letstatistics=calculateStatistics(scores:[5,3,100,3,9])//Prints"120"//PrintsfuncreturnFifteen()->Int{vary=10y+=5funcmakeIncrementer()->((Int)->Int){funcaddOne(number:Int)->Int{return1+numberreturnvarincrement=print("theresultincrement(7)is//Print"theresultincrement(7)isforiteminlistifcondition(item){returntruereturnfunclessThanTen(number:Int)->Bool{returnnumber<10hasAnyMatches(list:numbers,condition:
numbers.mapnumbers.map({(number:Int)->Intletresult=3*return numbers.map({(number:Int)->Intletresult=number%2==0?result:return letmappedNumbers=numbers.map({numberin3*number//Prints"[60,57,21,letletsortedNumbers=numbers.sorted{$0>$1//Prints"[20,19,12, classclassShapevarnumberOfSides=funcsimpleDescription()->Stringreturn"Ashapewith\(numberOfSides)⽤shape.numberOfSides=varshapeDescription=这个⽤initclassNamedShapevarnumberOfSides:Int=0varname:S=funcsimpleDescription()->Stringreturn"Ashapewith\(numberOfSides) 如
classSquare:NamedShapevarsideLength:init(sideLength:Double,name:String){numberOfSides=4returnsideLength*overridefuncsimpleDescription()->Stringreturn"Asquarewithsidesoflengthlettest=Square(sideLength:5.2,name:"mytestsquare")制作另⼀个NamedShape的⼦类Circle。它以半径和名称作为其初始值设定项的参数。在类中实现area()和simpleDescription()⽅法。classEquilateralTriangle:NamedShapevarsideLength:Double=init(sideLength:Double,name:String){self.sideLength=sideLengthsuper.init(name:name)numberOfSides=3varperimeter:Double{get{return3.0*setoverridefuncsimpleDescription()->Stringreturn"Anequilateraltrianglewithsidesoflengthvartriangle=EquilateralTriangle(sideLength:3.1,name:"atriangle")//Prints//Prints
classTriangleAndSquarevartriangle:EquilateralTriangle{willSet{square.sideLength=varsquare:Square{willSet{triangle.sideLength=init(size:Double,name:String)square=Square(sideLength:size,name:triangle=EquilateralTriangle(sideLength:size,name:vartriangleAndSquare=TriangleAndSquare(size:10,name:"anothertestshape")//Prints"10.0"//PrintstriangleAndSquare.square=Square(sideLength:50,name:"largersquare")//Prints
letletoptionalSquare:Square?=Square(sideLength:2.5,name:"optionalletsideLength= caseace=1casetwo,three,four,five,six,seven,eight,nine,casejack,queen,funcsimpleDescription()->String{switchself{casereturn"ace"case.jack:case.queen:return"queen"case.king:return"king"returnletace=编写⼀个通过⽐较两个原始值来⽐较两个值的Rank
使⽤没有匹配的Rank时返回nil。ififletconvertedRank=Rank(rawValue:3)letthreeDescription=enumSuitcasespades,hearts,diamonds,funcsimpleDescription()->String{switchself{case.spades:return"spades"case.hearts:return"diamonds"case.clubs:returnletheartsDescription=给添加⼀个
分配值时,使⽤Suit.hearts 表示,因为self已经明 enumServerResponse括号⾥⾯必须指定关联值类型,不能没有caseletsuccessServerResponse.result("6:00am""8:09pm")letfailure=ServerResponse.failure("Outofcaseswitchsuccesscaselet.result(sunrise,print("Sunriseisat\(sunrise)andsunsetisat\(sunset).")caselet.failure(message):print("Failure...//Prints"Sunriseisat6:00amandsunsetisat8:09在ServerResponse的switch
structCard{varsuit:funcsimpleDescription()->Stringreturn"The\(rank.simpleDescription())ofletthreeOfSpades=Card(rank:.three,suit:letthreeOfSpadesDescription= varsimpleDescription:String{getmutatingfuncclassclassSimpleClass:ExampleProtocolvarsimpleDescription:String="AverysimplevaranotherProperty:Int=funcadjust()simpleDescription+="Now100%vara=SimpleClass()letaDescription=structSimpleStructure:ExampleProtocolvarsimpleDescription:String="Asimplestructure"mutatingfuncadjust(){simpleDescription+="varb=SimpleStructure()letbDescription=向ExampleProtocol中添加新的需求(注:如新的成员变量或者⽅法)。如何修改SimpleClass和SimpleStructure使其仍然符合协议?请注意,在SimpleStructure⽽SimpleClass
extensionInt:ExampleProtocol{varsimpleDescription:String{return"Thenumber\(self)"mutatingfuncadjust(){self+=42//Prints"Thenumber为Double类型添加absoluteValue(绝对值)letletprotocolValue:ExampleProtocol=//Prints"Averysimpleclass.Now100%//print(protocolValue.anotherProperty)//Uncommenttoseethe即使变量protocolValue在运⾏时类型 enumenumPrinterError:Errorcasecasecase
funcfuncsend(job:Int,toPrinterprinterName:String)throws->StringifprinterName=="NeverHasToner"throw 。其中,可以通过在前⾯写⼊try来标记可do- do-doletprinterResponse=trysend(job:1040,toPrinter:"BiSheng")}catch{将打印机名称更改为"NeverHasToner",让函数send(job:toPrinter:) doletprinterResponse=trysend(job:1440,toPrinter:"Gutenberg")}catchPrinterError.onFireprint("I'lljustputthisoverhere,withtherestofthe}catchletprinterErrorasPrinterError{print("Printererror:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川铁道职业学院单招职业适应性考试题库含答案详解
- 2026年炎黄职业技术学院单招职业适应性考试题库及答案详解一套
- 2026年济南工程职业技术学院单招职业倾向性考试题库及参考答案详解一套
- 2026年台州学院单招职业倾向性考试题库参考答案详解
- 2026年广东省肇庆市单招职业适应性考试题库及参考答案详解1套
- 2026年南昌影视传播职业学院单招综合素质考试题库及答案详解1套
- 2026年冀中职业学院单招职业适应性测试题库含答案详解
- 2026年满洲里俄语职业学院单招职业倾向性考试题库含答案详解
- 2026年泸州医疗器械职业学院单招职业倾向性考试题库含答案详解
- 2026年甘肃农业职业技术学院单招职业适应性测试题库参考答案详解
- 进出口货物报关单的填制教案
- 被压迫者的教育学
- 2025年科研伦理与学术规范期末考试试题及参考答案
- 上市公司财务舞弊问题研究-以国美通讯为例
- 2025年国家开放电大行管本科《公共政策概论》期末考试试题及答案
- 四川省教育考试院2025年公开招聘编外聘用人员笔试考试参考试题及答案解析
- 超市商品陈列学习培训
- 2025年中级煤矿综采安装拆除作业人员《理论知识》考试真题(含解析)
- 2025年电机与拖动基础期末考试题库及答案
- 防喷演练及硫化氢防护流程
- 隧道通风机操作规程及维护指南
评论
0/150
提交评论