Swift简明教程.pdf





《Swift简明教程.pdf》由会员分享,可在线阅读,更多相关《Swift简明教程.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Swift?明?程?一?新?言的?候,大家都?于打印“Hello,world”?始。在Swift中只需要一行代?:println(Hello,-world)如果?曾?C或者Objective-C代?,?不?Swift的?法陌生。Swift中上面?一行就是一?完整的程序。?不需要再?入/?出或者字符串?理功能?入?立的?。程序以全局代?作?入口,因此不再需要main函?了。同?,代?尾的分?也不?再出?。再?明?程中,?到足?的知?Swift程序。如果看完?程后?有什?不理解的,?可以在?本?中?到解?。Note最好的?是在Xcode中?本章的?容作?一?Playground打?。Playgro
2、und允?Swift的?行?果。?在Swift中,使用let定?一?常量,var定?量。常量的?不需要在?定,但是只能?一次。?意味着?可以?一?常量?后,多次使用。var-myVariable-=-42myVariable-=-50let-myConstant-=-42?常量或者?量?的?候,?型必?相同。但是?不需要每次都?式的?出?的?型,因?器默?的?定了一些?据的?型。例如上面的代?中myVariable是一?整?型。如果初始?有提供足?的?型信息(或者?有初始?),可以在?量后增加?型?明符。let-implicitInteger-=-70let-implicitDouble-=-
3、70.0let-explicitDouble:-Double-=-70?建一?常量,指定?的?型?Float?4。Swift中的?据?型之?不?行?式的?。如果需要在不同?据?型之?行?的?,需要?式的?建一?目?型的?例。let-label-=-The-width-is-let-width-=-94let-widthLabel-=-label-+-String(width)?除最后一行的String,看看?有什?。长沙戴维营教育iOS培训?上,?有一?更加?的方法?包含到字符串中:把需要包含的?在?括?()中,然后在括?前添加反斜?就可以了,例如:let-apples-=-3let-oran
4、ges-=-5let-appleSummary-=-I-have-(apples)-apples.let-fruitSummary-=-I-have-(apples-+-oranges)-pieces-of-fruit.?在字符串中使用()包含浮点?Swift使用?建和?和字典。var-shoppingList-=-catfish,-water,-tulips,-blue-paintshoppingList1-=-bottle-of-watervar-occupations-=-Malcolm:-Captain,-Kaylee:-Mechanic,occupationsJayne-=-Publ
5、ic-Relations也可以使用初始化?句?建空的?和字典。let-emptyArray-=-String()let-emptyDictionary-=-Dictionary()如果?型信息能?被推?出?,?可以直接?空?,空字典?:。例如?函?的?候。shoppingList-=-/-Went-shopping-and-bought-everything.流程控制使用if和switch?行?件判?,for-in、for、while和do-while?行循?。?件判?的?括?可?的,但是if或者循?的花括?必?的。let-individualScores-=-75,-43,-103,-87,
6、-12var-teamScore-=-0for-score-in-individualScores-if-score-50-teamScore-+=-3-else-teamScore-+=-1-teamScoreif?句中,判?件必?布?表?式,也就是?if score .的形式是?的,?不?式的?0?行比?。长沙戴维营教育iOS培训?可以使用if和let一起?判?是否缺失。?些?被看作是?(Optionals)。一?包含一?或者nil?表示是否缺失?容。在?型后面添加?一?是一?。var-optionalString:-String?-=-HellooptionalString-=-nilv
7、ar-optionalName:-String?-=-John-Apppleseedvar-greeting-=-Hello!if-let-name-=-optionalName-greeting-=-Hello,-(name)?optionalName的?改?nil,看一下能不能得到?候。在if后添加else?句,使得optionalName?nil的?候打印不同的?候?句。如果?的?nil,?件?false,if后的?句被跳?。否?的?被?let后的常量,?且?常量的作用域?花括?里面。Swift里的switch?句支持任意?据?型以及比?操作,而不是被限制?整?的相等。let-veget
8、able-=-red-pepperswitch-vegetable-case-celery:-let-vegetableComment-=-Add-some-raisins-and-make-ants-on-a-log.-case-cucumber,-watercress:-let-vegetableComment-=-That-would-make-a-good-tea-sandwich.-case-let-x-where-x.hasSuffix(pepper):-let-vegetableComment-=-Is-it-a-spicy-(x)?-default:-let-vegetable
9、Comment-=-Everything-tasts-good-in-soup.?移除default?句,看看有什?行完switch的一?case后,程序?switch?句中跳出,而不?行下一?case?句,因此在Swift中不需要?式的使用break跳出每一?分支。在使用for-in?行迭代的?候,每次迭代都?返回一?:let-interestingNumbers-=-Prime:-2,-3,-5,-7,-11,-13,-Fibonacci:-1,-1,-2,-3,-5,-8,-Square:-1,-4,-9,-16,-25,var-largest-=-0for-(kind,-numbers
10、)-in-interestingNumbers-for-number-in-numbers-if-number-largest-largetst-=-number-长沙戴维营教育iOS培训largest?增加一?量,?最大?所在的分?while?一直循?行,直到判?件?生?化。如果使用do-while,循?至少?行一次。var-n-=-2while-n-100-n-=-n-*-2nvar-m-=-2do-m-=-m-*-2-while-m-100m在for循?中通?索引?控制循?,其中.用?建一?索引的范?,下面?循?是一?的效果var-firstForLoop-=-0for-i-in-0.3
11、-firstForLoop-+=-ifirstForLoopvar-secondForLoop-=-0for-var-i-=-0;-i-?示。func-greet(name:-String,-day:-String)-j-String-return-Hello-(name),-today-is-(day).greet(Bob,-Tuesday)?移除day?,添加一些?的信息使用元?函?中返回多?。func-getGasPrices()-j-(Double,-Double,-Double)-长沙戴维营教育iOS培训-return-(3.59,-3.69,-3.79)getGasPrices()
12、Swift的函?可以接受可?。func-sumOf(numbers:-Int.)-j-Int-var-sum-=-0-for-number-in-numbers-sum-+=-number-return-sumsumOf()sumOf(43,-597,-12)?一?算?平均?的函?Swift的函?可以?行嵌套。被嵌套的函?可以?外面函?定?的?量。func-returnFifteen()-j-Int-var-y-=-10-func-add()-y-+=-5-add()-return-yreturnFifteen()Swift中的函?也是基本的?据?型,也就是?可以在一?函?中返回?外一?函?。
13、func-makeIncrementer()-j-(Int-j-Int)-func-addOne(number:-Int)-j-Int-return-1-+-number-return-addOnevar-increment-=-makeIncrementer()increment(7)函?然也可以作?其?函?的?行?。func-hasAnyMatches(list:-Int,-condition:-Int-j-Bool)-j-Bool-for-item-in-list-if-condition(item)-return-true-长沙戴维营教育iOS培训-return-falsefunc-l
14、essThanTen(number:-Int)-j-Bool-return-number-Int-in-let-result-=-3-*-number-return-result)?重?上面的?包,使得所有的奇?都返回0?有?方式可以使得?包的?更加?。?包的?型是已知的,比如作?回?或者代理的?候,?可以省略?型或者返回?型。如下:numbers.map(-number-in-3-*-number-)在?包中?可以使用位置?引用?,?在?非常短的?包的?候比?有用。?包作?函?的最后一?,可以?放在函?的?括?后面。sort(1,-5,-3,-12,-2)-$0-$1-?象Swift中使用c
15、lass?字定?。?里面?性的?明?定?量和常量差不多,而成?方法也?普通函?的?法一?,只是?在?里面。class-Shape-var-numberOfSides-=-0-func-simpleDescription()-j-String-return-A-shape-with-(numberOfSides)-sides.-?上面的?用let添加一?常量?性,?且增加一?能?接受一?的方法直接在?名后增加?括?就可以?建?的?例,然后通?点操作符?的?性和成?方法。长沙戴维营教育iOS培训var-shape-=-Shape()shape.numberOfSides-=-7var-shapeD
16、escription-=-shape.simpleDescription()不?上面的Shape?缺少一些重要的?西:在?建?象的?候?行初始化的初始化器。初始化器用init?行定?。class-NameShape-var-numberOfSides:-Int-=-0-var-name:-String-init(name:-String)-self.name-=-name-func-simpleDescription()-j-String-return-A-shape-with-(numberOfSides)-sides.-?里要注意的是init方法中self的用法。初始化方法的?普通的函?似
17、。?中的?性都?行初始化?,不管是在?明的?候?是在初始化器中。deinit是Swift的析?函?,?dealloc?似,用在?象?毁?行?理工作。在?名后使用冒?:和父?的名字表示?承?系,Swift中?不要求每?都有父?。子?使用override?字?重?父?的方法,如果?有?override的?,?出?器?。同?,?器也?有override?字的方法是否?的重?了父?的方法。class-Square-:-NamedShape-var-sideLength:-Double-init(sideLength:-Double,-name:-String)-self.sideLength-=-si
18、deLength-super.init(name:-name)-numberOfSides-=-4-func-area()-j-Double-return-sideLength-*-sideLength-override-func-simpleDescription()-j-String-return-A-square-with-sides-of-length-(sideLength).-let-test-=-Square(sideLength:-5.2,-name:-my-test-square)test.area()test.simpleDescription()?NamedShape?建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Swift 简明 教程

限制150内