¼ÆËã»ú±à³ÌÓïÑÔ
±êÇ©£º SWIFT ±à³Ì¹¤¾ß ¹ÙÍø£ºhttp://www.prmed.cn
¡¶Swift3.0Õýʽ°æ¡··¢²¼£¬Õâ¿îÓÃÓÚ±àдiOSºÍOS XµÄÓ¦ÓóÌÐò£¬½«ÎÒÃÇÊìϤµÄCºÍObjective-C¹¦ÄÜÐÔÓÅµã½øÐÐÁËÈںϼæÈÝ£¬È¥³ýÁ˶àÓàµÄÏÞÖÆ¼°Bug£¬±à³Ì¹¤³Ì¸ü¼ò±ã£¬Èà Swift ÓïÑԵĿª·¢ÌåÑé³ÉÊì¡£
SwiftÊÇÆ»¹ûÓÚ2014ÄêWWDC£¨Æ»¹û¿ª·¢Õß´ó»á£©·¢²¼µÄпª·¢ÓïÑÔ£¬¿ÉÓëObjective-C¹²Í¬ÔËÐÐÓÚMAC OSºÍiOSƽ̨£¬ÓÃÓڴ»ùÓÚÆ»¹ûƽ̨µÄÓ¦ÓóÌÐò¡£
Swift µÄÀàÐÍÊÇÔÚ C ºÍ Objective-C µÄ»ù´¡ÉÏÌá³öµÄ£¬IntÊÇÕûÐÍ£»DoubleºÍFloatÊǸ¡µãÐÍ£»BoolÊDz¼¶ûÐÍ£»StringÊÇ×Ö·û´®¡£Swift »¹ÓÐÁ½¸öÓÐÓõļ¯ºÏÀàÐÍ£¬ArrayºÍDictionary£¬Çë²Î¿¼¼¯ºÏÀàÐÍ¡£
¾ÍÏñ C ÓïÑÔÒ»Ñù£¬Swift ʹÓñäÁ¿À´½øÐд洢²¢Í¨¹ý±äÁ¿ÃûÀ´¹ØÁªÖµ¡£ÔÚ Swift ÖУ¬Öµ²»¿É±äµÄ±äÁ¿ÓÐ׏㷺µÄÓ¦Óã¬ËüÃǾÍÊdz£Á¿£¬¶øÇÒ±È C ÓïÑԵij£Á¿¸üÇ¿´ó¡£ÔÚ Swift ÖУ¬Èç¹ûÄãÒª´¦ÀíµÄÖµ²»ÐèÒª¸Ä±ä£¬ÄÇʹÓó£Á¿¿ÉÒÔÈÃÄãµÄ´úÂë¸ü¼Ó°²È«²¢ÇÒ¸üºÃµØ±í´ïÄãµÄÒâͼ¡£
³ýÁËÎÒÃÇÊìϤµÄÀàÐÍ£¬Swift »¹Ôö¼ÓÁË Objective-C ÖÐûÓеÄÀàÐͱÈÈçÔª×飨Tuple£©¡£Ôª×é¿ÉÒÔÈÃÄã´´½¨»òÕß´«µÝÒ»×éÊý¾Ý£¬±ÈÈç×÷Ϊº¯ÊýµÄ·µ»ØÖµÊ±£¬Äã¿ÉÒÔÓÃÒ»¸öÔª×é¿ÉÒÔ·µ»Ø¶à¸öÖµ¡£
Swift »¹Ôö¼ÓÁË¿ÉÑ¡£¨Optional£©ÀàÐÍ£¬ÓÃÓÚ´¦ÀíֵȱʧµÄÇé¿ö¡£¿ÉÑ¡±íʾ¡°ÄǶùÓÐÒ»¸öÖµ£¬²¢ÇÒËüµÈÓÚ x ¡±»òÕß¡°ÄǶùûÓÐÖµ¡±¡£¿ÉÑ¡ÓеãÏñÔÚ Objective-C ÖÐʹÓÃnil£¬µ«ÊÇËü¿ÉÒÔÓÃÔÚÈκÎÀàÐÍÉÏ£¬²»½ö½öÊÇÀà¡£¿ÉÑ¡ÀàÐÍ±È Objective-C ÖеÄnilÖ¸Õë¸ü¼Ó°²È«Ò²¸ü¾ß±íÏÖÁ¦£¬ËüÊÇ Swift Ðí¶àÇ¿´óÌØÐÔµÄÖØÒª×é³É²¿·Ö¡£
Swift ÊÇÒ»¸öÀàÐͰ²È«µÄÓïÑÔ£¬¿ÉÑ¡¾ÍÊÇÒ»¸öºÜºÃµÄÀý×Ó¡£Swift ¿ÉÒÔÈÃÄãÇå³þµØÖªµÀÖµµÄÀàÐÍ¡£Èç¹ûÄãµÄ´úÂëÆÚÍûµÃµ½Ò»¸öString£¬ÀàÐͰ²È«»á×èÖ¹Ä㲻СÐÄ´«ÈëÒ»¸öInt¡£Äã¿ÉÒÔÔÚ¿ª·¢½×¶Î¾¡Ôç·¢ÏÖ²¢ÐÞÕý´íÎó¡£
³£Á¿ºÍ±äÁ¿
³£Á¿ºÍ±äÁ¿°ÑÒ»¸öÃû×Ö£¨±ÈÈçmaximumNumberOfLoginAttempts»òÕßwelcomeMessage£©ºÍÒ»¸öÖ¸¶¨ÀàÐ͵ÄÖµ£¨±ÈÈçÊý×Ö10»òÕß×Ö·û´®"Hello"£©¹ØÁªÆðÀ´¡£³£Á¿µÄÖµÒ»µ©É趨¾Í²»Äܸı䣬¶ø±äÁ¿µÄÖµ¿ÉÒÔËæÒâ¸ü¸Ä¡£
ÉùÃ÷³£Á¿ºÍ±äÁ¿
³£Á¿ºÍ±äÁ¿±ØÐëÔÚʹÓÃǰÉùÃ÷£¬ÓÃletÀ´ÉùÃ÷³£Á¿£¬ÓÃvarÀ´ÉùÃ÷±äÁ¿¡£ÏÂÃæµÄÀý×ÓչʾÁËÈçºÎÓó£Á¿ºÍ±äÁ¿À´¼Ç¼Óû§³¢ÊԵǼµÄ´ÎÊý£º
let maximumNumberOfLoginAttempts = 10var currentLoginAttempt = 0
ÕâÁ½ÐдúÂë¿ÉÒÔ±»Àí½âΪ£º¡°ÉùÃ÷Ò»¸öÃû×ÖÊÇmaximumNumberOfLoginAttemptsµÄг£Á¿£¬²¢¸øËüÒ»¸öÖµ10¡£È»ºó£¬ÉùÃ÷Ò»¸öÃû×ÖÊÇcurrentLoginAttemptµÄ±äÁ¿²¢½«ËüµÄÖµ³õʼ»¯Îª0.¡±
ÔÚÕâ¸öÀý×ÓÖУ¬ÔÊÐíµÄ×î´ó³¢ÊԵǼ´ÎÊý±»ÉùÃ÷Ϊһ¸ö³£Á¿£¬ÒòΪÕâ¸öÖµ²»»á¸Ä±ä¡£µ±Ç°³¢ÊԵǼ´ÎÊý±»ÉùÃ÷Ϊһ¸ö±äÁ¿£¬ÒòΪÿ´Î³¢ÊԵǼʧ°ÜµÄʱºò¶¼ÐèÒªÔö¼ÓÕâ¸öÖµ¡£
Äã¿ÉÒÔÔÚÒ»ÐÐÖÐÉùÃ÷¶à¸ö³£Á¿»òÕß¶à¸ö±äÁ¿£¬ÓöººÅ¸ô¿ª£º
var x = 0.0, y = 0.0, z = 0.0
×¢Ò⣺Èç¹ûÄãµÄ´úÂëÖÐÓв»ÐèÒª¸Ä±äµÄÖµ£¬ÇëʹÓÃlet¹Ø¼ü×Ö½«ËüÉùÃ÷Ϊ³£Á¿¡£Ö»½«ÐèÒª¸Ä±äµÄÖµÉùÃ÷Ϊ±äÁ¿¡£
ÀàÐͱê×¢
µ±ÄãÉùÃ÷³£Á¿»òÕß±äÁ¿µÄʱºò¿ÉÒÔ¼ÓÉÏÀàÐͱê×¢(type annotation)£¬ËµÃ÷³£Á¿»òÕß±äÁ¿ÖÐÒª´æ´¢µÄÖµµÄÀàÐÍ¡£Èç¹ûÒªÌí¼ÓÀàÐͱê×¢£¬ÐèÒªÔÚ³£Á¿»òÕß±äÁ¿ÃûºóÃæ¼ÓÉÏÒ»¸öðºÅºÍ¿Õ¸ñ£¬È»ºó¼ÓÉÏÀàÐÍÃû³Æ¡£
Õâ¸öÀý×Ó¸øwelcomeMessage±äÁ¿Ìí¼ÓÁËÀàÐͱê×¢£¬±íʾÕâ¸ö±äÁ¿¿ÉÒÔ´æ´¢StringÀàÐ͵ÄÖµ£º
var welcomeMessage: String
ÉùÃ÷ÖеÄðºÅ´ú±í×Å¡°ÊÇ...ÀàÐÍ¡±£¬ËùÒÔÕâÐдúÂë¿ÉÒÔ±»Àí½âΪ£º¡°ÉùÃ÷Ò»¸öÀàÐÍΪString£¬Ãû×ÖΪwelcomeMessageµÄ±äÁ¿¡£¡±
¡°ÀàÐÍΪString¡±µÄÒâ˼ÊÇ¡°¿ÉÒÔ´æ´¢ÈÎÒâStringÀàÐ͵ÄÖµ¡£¡±
welcomeMessage±äÁ¿ÏÖÔÚ¿ÉÒÔ±»ÉèÖóÉÈÎÒâ×Ö·û´®£º
welcomeMessage = "Hello"
×¢Ò⣺һ°ãÀ´ËµÄãºÜÉÙÐèҪдÀàÐͱê×¢¡£Èç¹ûÄãÔÚÉùÃ÷³£Á¿»òÕß±äÁ¿µÄʱºò¸³ÁËÒ»¸ö³õʼֵ£¬Swift¿ÉÒÔÍÆ¶Ï³öÕâ¸ö³£Á¿»òÕß±äÁ¿µÄÀàÐÍ£¬Çë²Î¿¼ÀàÐͰ²È«ºÍÀàÐÍÍÆ¶Ï¡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬Ã»ÓиøwelcomeMessage¸³³õʼֵ£¬ËùÒÔ±äÁ¿welcomeMessageµÄÀàÐÍÊÇͨ¹ýÒ»¸öÀàÐͱê×¢Ö¸¶¨µÄ£¬¶ø²»ÊÇͨ¹ý³õÊ¼ÖµÍÆ¶ÏµÄ¡£
³£Á¿ºÍ±äÁ¿µÄÃüÃû
Äã¿ÉÒÔÓÃÈκÎÄãϲ»¶µÄ×Ö·û×÷Ϊ³£Á¿ºÍ±äÁ¿Ãû£¬°üÀ¨ Unicode ×Ö·û£º
let ¦Ð = 3.14159let ÄãºÃ = "ÄãºÃÊÀ½ç"
³£Á¿Óë±äÁ¿Ãû²»Äܰüº¬Êýѧ·ûºÅ£¬¼ýÍ·£¬±£ÁôµÄ£¨»òÕß·Ç·¨µÄ£©Unicode Âë룬Á¬ÏßÓëÖÆ±í·û¡£Ò²²»ÄÜÒÔÊý×Ö¿ªÍ·£¬µ«ÊÇ¿ÉÒÔÔÚ³£Á¿Óë±äÁ¿ÃûµÄÆäËûµØ·½°üº¬Êý×Ö¡£
Ò»µ©Ä㽫³£Á¿»òÕß±äÁ¿ÉùÃ÷Ϊȷ¶¨µÄÀàÐÍ£¬Äã¾Í²»ÄÜʹÓÃÏàͬµÄÃû×ÖÔٴνøÐÐÉùÃ÷£¬»òÕ߸ıäÆä´æ´¢µÄÖµµÄÀàÐÍ¡£Í¬Ê±£¬ÄãÒ²²»Äܽ«³£Á¿Óë±äÁ¿½øÐл¥×ª¡£
×¢Ò⣺Èç¹ûÄãÐèҪʹÓÃÓëSwift±£Áô¹Ø¼ü×ÖÏàͬµÄÃû³Æ×÷Ϊ³£Á¿»òÕß±äÁ¿Ãû£¬Äã¿ÉÒÔʹÓ÷´ÒýºÅ£¨`£©½«¹Ø¼ü×Ö°üΧµÄ·½Ê½½«Æä×÷ΪÃû×ÖʹÓá£ÎÞÂÛÈçºÎ£¬ÄãÓ¦µ±±ÜÃâʹÓùؼü×Ö×÷Ϊ³£Á¿»ò±äÁ¿Ãû£¬³ý·ÇÄã±ðÎÞÑ¡Ôñ¡£
Äã¿ÉÒÔ¸ü¸ÄÏÖÓеıäÁ¿ÖµÎªÆäËûͬÀàÐ͵ÄÖµ£¬ÔÚÏÂÃæµÄÀý×ÓÖУ¬friendlyWelcomeµÄÖµ´Ó"Hello!"¸ÄΪÁË"Bonjour!":
var friendlyWelcome = "Hello!"friendlyWelcome = "Bonjour!"// friendlyWelcome ÏÖÔÚÊÇ "Bonjour!"Óë±äÁ¿²»Í¬£¬³£Á¿µÄÖµÒ»µ©±»È·¶¨¾Í²»Äܸü¸ÄÁË¡£³¢ÊÔÕâÑù×ö»áµ¼Ö±àÒëʱ±¨´í£º
let languageName = "Swift"languageName = "Swift++"// Õâ»á±¨±àÒëʱ´íÎó - languageName ²»¿É¸Ä±ä
Êä³ö³£Á¿ºÍ±äÁ¿
Äã¿ÉÒÔÓÃprintlnº¯ÊýÀ´Êä³öµ±Ç°³£Á¿»ò±äÁ¿µÄÖµ:
println(friendlyWelcome) // Êä³ö "Bonjour!"
printlnÊÇÒ»¸öÓÃÀ´Êä³öµÄÈ«¾Öº¯Êý£¬Êä³öµÄÄÚÈÝ»áÔÚ×îºó»»ÐС£Èç¹ûÄãÓà Xcode£¬println½«»áÊä³öÄÚÈݵ½¡°console¡±Ãæ°åÉÏ¡£(ÁíÒ»ÖÖº¯Êý½Ðprint£¬Î¨Ò»Çø±ðÊÇÔÚÊä³öÄÚÈÝ×îºó²»»á»»ÐС£)
printlnº¯ÊýÊä³ö´«ÈëµÄStringÖµ£º
¸´ÖÆ´¿Îı¾Ð´°¿Úprintln("This is a string") // Êä³ö "This is a string"
Óë Cocoa ÀïµÄNSLogº¯ÊýÀàËÆµÄÊÇ£¬printlnº¯Êý¿ÉÒÔÊä³ö¸ü¸´ÔÓµÄÐÅÏ¢¡£ÕâЩÐÅÏ¢¿ÉÒÔ°üº¬µ±Ç°³£Á¿ºÍ±äÁ¿µÄÖµ¡£
Swift ÓÃ×Ö·û´®²åÖµ£¨string interpolation£©µÄ·½Ê½°Ñ³£Á¿Ãû»òÕß±äÁ¿Ãûµ±×öռλ·û¼ÓÈëµ½³¤×Ö·û´®ÖУ¬Swift »áÓõ±Ç°³£Á¿»ò±äÁ¿µÄÖµÌæ»»ÕâЩռλ·û¡£½«³£Á¿»ò±äÁ¿Ãû·ÅÈëÔ²À¨ºÅÖУ¬²¢ÔÚ¿ªÀ¨ºÅǰʹÓ÷´Ð±¸Ü½«ÆäתÒ壺
¸´ÖÆ´¿Îı¾Ð´°¿Úprintln("The current value of friendlyWelcome is \(friendlyWelcome)")// Êä³ö "The current value of friendlyWelcome is Bonjour!
×¢Ò⣺×Ö·û´®²åÖµËùÓпÉÓõÄÑ¡ÏÇë²Î¿¼×Ö·û´®²åÖµ¡£
ÈÈÃÅÆÀÂÛ
×îÐÂÆÀÂÛ
·¢±íÆÀÂÛ ²é¿´ËùÓÐÆÀÂÛ(0)