Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOS¿ª·¢ÏµÁÐ--SwiftÓïÑÔ£¨ÉÏ£©
 
×÷ÕߣºKenshinCui À´×ÔÓÚ£º²©¿ÍÔ° ·¢²¼ÓÚ 2015-11-13
  2083  次浏览      27
 

¸ÅÊö

SwiftÊÇÆ»¹û2014ÄêÍÆ³öµÄȫеıà³ÌÓïÑÔ£¬Ëü¼Ì³ÐÁËCÓïÑÔ¡¢ObjCµÄÌØÐÔ£¬ÇÒ¿Ë·þÁËCÓïÑԵļæÈÝÐÔÎÊÌâ¡£Swift·¢Õ¹¹ý³ÌÖв»½ö±£ÁôÁËObjCºÜ¶àÓï·¨ÌØÐÔ£¬ËüÒ²½è¼øÁ˶àÖÖÏÖ´ú»¯ÓïÑÔµÄÌØµã£¬ÔÚÆäÖÐÄã¿ÉÒÔ¿´µ½C#¡¢Java¡¢Javascript¡¢PythonµÈ¶àÖÖÓïÑÔµÄÓ°×Ó¡£Í¬Ê±ÔÚ2015ÄêµÄWWDCÉÏÆ»¹û»¹Ðû²¼SwiftµÄа汾Swift2.0£¬²¢Ðû²¼ÉÔºóSwift¼´½«¿ªÔ´£¬³ýÁËÖ§³ÖiOS¡¢OS XÖ®Í⻹½«Ö§³Ölinux¡£

±¾ÎĽ«¼ÌÐøiOS¿ª·¢ÏµÁн̳̣¬¼ÙÉè¶ÁÕßÒѾ­ÓÐÁËÆäËûÓïÑÔ»ù´¡£¨Ç¿ÁÒ½¨Òé³õѧÕß´Ó±¾ÏµÁеÚÒ»Õ¿ªÊ¼ÔĶÁ£¬Èç¹ûÄúÏ£Íû´ÓSwiftѧÆð£¬ÄÇÃ´ÍÆ¼öÄãÊ×ÏÈÔĶÁÆ»¹û¹Ù·½µç×ÓÊé¡¶the swift programming language¡·£©£¬²»»á´ÓÁã»ù´¡Ò»µãµãÆÊÎöÕâÃÅÓïÑÔµÄÓï·¨£¬Ö¼ÔÚ°ïÖú´ó¼Ò¿ìËÙ´ÓObjC¿ìËÙ¹ý¶Èµ½Swift¿ª·¢ÖС£¼´±ãÈç´Ë£¬Òª¾¡¿ÉÄÜÈ«ÃæµÄ½éÉÜSwiftµÄÓï·¨ÌØµãÒ²²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇ飬Òò´Ë±¾ÎĽ«²ÉÓýϳ¤µÄƪ·ù½øÐнéÉÜ¡£

»ù´¡²¿·Ö

µÚÒ»¸öSwift³ÌÐò

´´½¨Ò»¸öÃüÁîÐгÌÐòÈçÏ£º

import Foundation

* SwiftûÓÐmainº¯Êý£¬Ä¬ÈÏ´Ótop level codeµÄÉÏ·½¿ªÊ¼×ÔÉ϶øÏÂÖ´ÐУ¨Òò´Ë²»ÄÜÓжà¸ötop level´úÂ룩

println("Hello, World!")

´ÓÉÏÃæµÄ´úÂë¿ÉÒÔ¿´³ö£º

1.SwiftûÓÐmainº¯Êý£¬´Ótop level codeµÄÉÏ·½¿ªÊ¼ÍùÏÂÖ´ÐУ¨¾ÍÊǵÚÒ»¸ö·ÇÉùÃ÷Óï¾ä¿ªÊ¼Ö´ÐÐ[±í´ïʽ»òÕß¿ØÖƽṹ£¬Àà¡¢½á¹¹Ì塢ö¾ÙºÍ·½·¨µÈÊôÓÚÉùÃ÷Óï¾ä]£©£¬²»ÄÜ´æÔÚ¶à¸ötop level codeÎļþ(·ñÔò±àÒëÆ÷ÎÞ·¨È·¶¨Ö´ÐÐÈë¿Ú£¬ÊÂʵÉÏswiftÒþº¬Ò»¸ömainº¯Êý£¬Õâ¸ömainº¯Êý»áÉèÖò¢µ÷ÓÃÈ«¾Ö ¡°C_ARGC C_ARGV¡±²¢µ÷ÓÃÓÉtop level code¹¹³ÉµÄtop_level_code()º¯Êý)£»

2.Swiftͨ¹ýimportÒýÈëÆäËûÀà¿â£¨ºÍJava±È½ÏÏñ£©£»

3.SwiftÓï¾ä²»ÐèҪ˫ÒýºÅ½á⣨¾¡¹Ü¼ÓÉÏÒ²²»±¨´í£©£¬³ý·ÇÒ»Ðаüº¬¶àÌõÓï¾ä£¨ºÍPythonÓеãÀàËÆ£©£»

Êý¾ÝÀàÐÍ

Swift°üº¬ÁËCºÍObjCÓïÑÔÖеÄËùÓлù´¡ÀàÐÍ£¬IntÕûÐΣ¬FloatºÍDouble¸¡µãÐÍ£¬Bool²¼¶ûÐÍ£¬Character×Ö·ûÐÍ£¬String×Ö·û´®ÀàÐÍ£»µ±È»»¹°üÀ¨enumö¾Ù¡¢struct½á¹¹Ìå¹¹ÔìÀàÐÍ£»ArrayÊý×é¡¢Set¼¯ºÏ¡¢Dictionary×ֵ伯ºÏÀàÐÍ£»²»½öÈç´Ë»¹Ôö¼ÓÁ˸߽×Êý¾ÝÀàÐÍÔª×飨Tuple£©£¬¿ÉÑ¡ÀàÐÍ£¨Optinal£©¡£

»ù´¡ÀàÐÍ

Xcode ´Ó6.0¿ªÊ¼¼ÓÈëÁËPlayground´úÂë²âÊÔ£¬¿ÉÒÔʵʱ²é¿´´úÂëÖ´Ðнá¹û£¬ÏÂÃæÊ¹ÓÃPlayground¼òµ¥ÑÝʾһÏÂSwiftµÄ»ù´¡ÄÚÈÝ£¬¶ÔSwiftÓиö¼òµ¥µÄÈÏʶ£º


import Foundation

var a:Int=1 //ͨ¹ývar¶¨ÒåÒ»¸ö±äÁ¿

//ÏÂÃæ±äÁ¿bËäȻûÓÐÉùÃ÷ÀàÐÍ£¬µ«ÊÇ»á×Ô¶¯½øÐÐÀàÐÍÍÆ¶Ï£¬ÕâÀïbÍÆ¶ÏΪIntÀàÐÍ

var b=2

var c:UInt=3

let d=a+b //ͨ¹ýlet¶¨ÒåÒ»¸ö±äÁ¿

//ÏÂÃæÍ¨¹ý"\()"ʵÏÖÁË×Ö·û´®ºÍ±äÁ¿Ïà¼Ó(×Ö·û´®²åÖµ)£¬µÈ¼ÛÓÚprintln("d="+String(d))

println("d=\(d)") //½á¹û£ºd=3

//×¢ÒâÓÉÓÚSwiftÊÇÇ¿ÀàÐÍÓïÑÔ£¬aÊÇIntÀàÐͶøcÊÇUIntÀàÐÍ£¬¶þÕß²»ÄÜÔËË㣬ÏÂÃæµÄÓï¾ä±¨´í;µ«ÊÇ×¢ÒâÈç¹ûÊÇÀàËÆÓÚ£ºlet a=1+2.0ÊDz»»á±¨´íµÄ£¬ÒòΪÁ½¸ö¶¼ÊÇ×ÖÃæÁ¿£¬Swift»áÊ×ÏȼÆËã³ö½á¹ûÔÙÍÆ¶ÏaµÄÀàÐÍ

//let e=a+c

//Int.maxÊÇIntÀàÐ͵Ä×î´óÖµ£¬ÀàËÆ»¹ÓÐInt.min¡¢Int32.max¡¢Int32.minµÈ

let e=Int.max //½á¹û£º9223372036854775807

var f:Float=1.0

var g=2.0 //¸¡µãÐÍ×Ô¶¯ÍƶÏΪDoubleÀàÐÍ

var h:String="hello "

//emoj±íÇéÒ²¿ÉÒÔ×÷Ϊ±äÁ¿»òÕß³£Á¿£¬ÊÂʵÉÏËùÓÐUnicode×Ö·û¶¼ÊÇ¿ÉÒÔµÄ

var ????="love and apple"

//Á½¸ö×Ö·û´®Ïà¼Ó£¬µ«ÊÇ×¢ÒⲻͬÀàÐͲ»ÄÜÏà¼Ó

var i=h+???? //½á¹û:hello love and apple

//²¼¶ûÀàÐÍÖ»ÓÐÁ½¸öÖµtrue¡¢false£¬ÀàËÆÓÚifÓï¾äÖеÄÌõ¼þÖ»ÄÜÊDz¼¶ûÀàÐͲ»ÄÜÏñObjCÒ»Ñù·Ç0¼´Õæ

var j:Bool=true

//×Ö·ûÀàÐÍ£¬Í¬ÑùʹÓÃË«ÒýºÅ£¬µ«ÊÇÖ»ÄÜÊÇÒ»¸ö×Ö·û£¬Èç¹û²»Ö¸¶¨ÀàÐÍÔò"c"ĬÈÏ»áÍÆ¶ÏΪ×Ö·û´®£¨var k:Character="c"ÊÇ×Ö·ûÀàÐÍ£¬µ«ÊÇvar k="c"ÊÇ×Ö·û´®ÀàÐÍ£©

var k:Character="c"

var l=00100 //µÈÓÚ100£¬¿ÉÒÔÔÚÇ°ÃæÌí¼Ó¶îÍâµÄ0

var m=10_000_000 //µÈÓÚ10000000£¬¿ÉÒÔʹÓÃÔö¼Ó¶îÍâµÄÏ»®Ïß·½±ãÔĶÁ¶ø²»¸Ä±äÖµµÄ´óС

1.Swiftͨ¹ývar½øÐбäÁ¿¶¨Ò壬ͨ¹ýlet½øÐг£Á¿¶¨Ò壨ÕâºÍÆäËû¸ß¼¶ÓïÑԱȽÏÀàËÆ£¬ÀýÈçF#£©£»

2.SwiftÌí¼ÓÁËÀàÐÍÍÆ¶Ï£¬¶ÔÓÚ¸³ÖµµÄ³£Á¿»òÕß±äÁ¿»á×Ô¶¯ÍÆ¶ÏÆä¾ßÌåÀàÐÍ£»

3.SwiftÊÇÇ¿ÀàÐÍÓïÑÔ£¨Ó¦¸Ã˵Ëü±ÈC#¡¢JavaµÈÇ¿ÀàÐÍÓïÑÔ¿ØÖÆ»¹ÒªÑϸñ£©£¬²»Í¬µÄÊý¾ÝÀàÐÍÖ®¼ä²»ÄÜÒþʽת»¯£¬Èç¹ûÐèҪת»¯Ö»ÄÜÇ¿ÖÆ×ª»¯£»

4.ÔÚSwiftÖÐÀàÐÍת»»Ö±½Óͨ¹ýÆäÀàÐ͹¹Ô캯Êý¼´¿É£¬½µµÍÁËAPIµÄѧϰ³É±¾£»

¼¯ºÏÀàÐÍ

SwiftÌṩÁËÈýÖÖ¼¯ºÏÀàÐÍ£ºÊý×éArray¡¢¼¯ºÏSet¡¢×ÖµäDictionary¡£ºÍObjC²»Í¬µÄÊÇ£¬ÓÉÓÚSwiftµÄÇ¿ÀàÐÍ£¬¼¯ºÏÖеÄÔªËØ±ØÐëÊÇͬһÀàÐÍ£¬¶ø²»ÄÜÏñObjCÒ»Ñù¿ÉÒÔ´æ´¢ÈκζÔÏóÀàÐÍ,²¢ÇÒ×¢ÒâSwiftÖеļ¯ºÏÊÇÖµÀàÐͶø·ÇÒýÓÃÀàÐÍ£¨ÊÂʵÉϰüÀ¨String¡¢½á¹¹Ìåstruct¡¢Ã¶¾Ùenum¶¼ÊÇÖµÀàÐÍ£©¡£

Ê×ÏÈ¿´Ò»ÏÂSwiftÖеÄÊý×飺


//ÉùÃ÷Êý×éµÄʱºò±ØÐëÈ·¶¨ÆäÀàÐÍ£¬ÏÂÃæÊ¹ÓÃ[String]ÉùÃ÷Ò»¸ö×Ö·û´®Êý×飨[String]ÊÇArray<String>¼òµ¥±í´ïÐÎʽ£©

//var a:Array<String>=["hello","world"]

var a:[String]=["hello","world"]

a[0] //·ÃÎÊÊý×éÔªËØ

//ÏÂÃæ´´½¨Ò»¸öDoubleÀàÐ͵ÄÊý×飬ÕâÀïûÓÐʹÓÃ×ÖÃæÁ¿£¬µ±Ç°ÊÇÒ»¸ö¿ÕÊý×飬µ±È»Ò²¿ÉÒÔд³Évar b:[Double]=[]

var b=[Double]()

for i in a{

println("i=\(i)")

}

//Ìí¼ÓÔªËØ£¬SwiftÖпɱäÀàÐͲ»ÔÙÓɵ¥¶ÀµÄÒ»¸öÀàÐÍÀ´±íʾ£¬Í³Í³Ê¹ÓÃArray£¬Èç¹ûÏëÉùÃ÷Ϊ²»¿É±äÊý×éֻҪʹÓÃlet¶¨Òå¼´¿É

a.append("!")

a+=["I" ,"am" ,"Kenshin"] //×·¼ÓÔªËØ

println("a.count=\(a.count)") //½á¹û£ºa.count=6

a[3...5]=["I","Love","Swift"] //ÐÞ¸ÄÔªËØ,µ«ÊÇ×¢ÒâÎÞ·¨ÓÃÕâÖÖ·½Ê½Ìí¼ÓÔªËØ

//a[6]=["."]//ÕâÖÖ·½Ê½ÊÇ´íÎóµÄ

a.insert("New", atIndex: 5) //²åÈëÔªËØ£ºhello world! I Love New Swift

a.removeAtIndex(5) //ɾ³ýÖ¸¶¨ÔªËØ

//ʹÓÃÈ«¾Öenumerateº¯Êý±éÀúÊý¾ÝË÷ÒýºÍÔªËØ

for (index,element) in enumerate(a){

println("index=\(index),element=\(element)")

}

//ʹÓù¹Ô캯ÊýÏÞÖÆÊý×éÔªËØ¸öÊý²¢ÇÒÖ¸¶¨Ä¬ÈÏÖµ,µÈ¼ÛÓÚvar c=Array(count: 3, repeatedValue: 1)£¬×Ô¶¯ÍƶÏÀàÐÍ

var c=[Int](count: 3, repeatedValue: 1)

Set±íʾûÓÐ˳ÐòµÄ¼¯ºÏ£º


//×¢Ò⼯ºÏûÓÐÀàËÆÓÚÊý×éµÄ¼ò»¯ÐÎʽ£¬ÀýÈç²»ÄÜд³Évar a:[String]=["hello","world"]

var a:Set<String>=["hello","world"]

var b:Set=[1,2] //ÀàÐÍÍÆ¶Ï£ºSet<Int>

a.insert("!") //×¢ÒâÕâ¸ö²åÈë²»±£Ö¤Ë³Ðò

if !a.isEmpty { //ÅжÏÊÇ·ñΪ¿Õ

a.remove("!")

}

if !a.contains("!"){

a.insert("!")

}

Dictionary×ÖµäͬÑùÊÇûÓÐ˳ÐòµÄ£¬²¢ÇÒÔÚSwiftÖÐ×ÖµäͬÑùÒªÔÚʹÓÃʱÃ÷È·¾ßÌåµÄÀàÐÍ¡£ºÍObjCÖÐÒ»Ñù£¬×ֵ䱨Ðë±£Ö¤keyÊÇΨһµÄ£¬¶øÕâÒ»µã¾ÍÒªÇóÔÚSwiftÖÐkey±ØÐëÊǿɹþÏ£µÄ£¬²»¹ýÐÒÔ˵ÄÊÇSwiftÖеĻù±¾ÀàÐÍ£¨ÈçInt¡¢Float¡¢Double¡¢Bool¡¢String£©¶¼ÊǿɹþÏ£µÄ£¬¶¼¿ÉÒÔ×÷Ϊkey¡£


//ͨ¹ý×ÖÃæÁ¿½øÐÐ×Öµä³õʼ»¯£¬×¢ÒâµÈ¼ÛÓÚvar a:Dictionary<Int,String>=[200:"success",404:"not found"]

var a:[Int:String]=[200:"success",404:"not found"]

var b=[200:"success",404:"not found"] //²»ÉùÃ÷ÀàÐÍ£¬¸ù¾ÝÖµ×Ô¶¯ÍƶÏÀàÐÍ

a[200] //¶ÁÈ¡×Öµä

a[404]="can not found" //ÐÞ¸Ä

a[500]="internal server error" //Ìí¼Ó

//a=[:] //ÉèÖÃΪ¿Õ×Öµä,µÈ¼ÛÓÚ£ºa=[Int:String]()

for code in a.keys{

println("code=\(code)")

}

for description in a.values{

println("description=\(description)")

}

for (code,description) in a{

println("code=\(code),description=\(description)")

}

×¢Ò⣺ÔÚSwiftÖм¯ºÏµÄ¿É±äÐÔ²»ÊÇÏñObjCÒ»ÑùÓɵ¥¶ÀµÄÊý¾ÝÀàÐÍÀ´¿ØÖƵ쬶øÊÇͨ¹ý±äÁ¿ºÍ³£Á¿À´¿ØÖÆ£¬ÕâÒ»µãºÍÆäËû¸ß¼¶ÓïÑԱȽÏÀàËÆ¡£

Ôª×飨Tuple£©

ÔÚ¿ª·¢¹ý³ÌÖÐÓÐʱºò»áÏ£ÍûÁÙʱ×éÖ¯Ò»¸öÊý¾ÝÀàÐÍ£¬´Ëʱ¿ÉÒÔʹÓÃÒ»¸ö½á¹¹Ìå»òÕßÀ࣬µ«ÊÇÓÉÓÚÕâ¸öÀàÐͲ¢Ã»ÓÐÄÇô¸´ÔÓ£¬Èç¹û¶¨ÒåÆðÀ´ÓֱȽÏÂé·³£¬´Ëʱ¿ÉÒÔ¿¼ÂÇʹÓÃÔª×é¡£


/**

* Ôª×éµÄ»ù±¾Ó÷¨

*/

var point=(x:50,y:100) //×Ô¶¯ÍÆ¶ÏÆäÀàÐÍ£º(Int,Int)

point.x //¿ÉÒÔÓÃÀàËÆÓڽṹÌåµÄ·½Ê½Ö±½Ó·ÃÎÊÔªËØ,½á¹û£º50

point.y //½á¹û£º100

point.0 //Ò²¿ÉÒÔ²ÉÓÃÀàËÆÊý×éµÄ·½Ê½Ê¹ÓÃϱê·ÃÎÊ£¬½á¹û£º50

point.1 //½á¹û£º100

//Ôª×éÒ²¿ÉÒÔ²»Ö¸¶¨ÔªËØÃû³Æ£¬·ÃÎʵÄʱºòÖ»ÄÜʹÓÃϱê

let frame:(Int,Int,Int,Float)=(0,0,100,100.0)

println(frame) //½á¹û£º(0, 0, 100, 100.0)

//×¢ÒâÏÂÃæµÄÓï¾äÊÇ´íÎóµÄ£¬Èç¹ûÖ¸¶¨ÁËÔª×éµÄÀàÐÍÔòÎÞ·¨Ö¸¶¨ÔªËØÃû³Æ

//let frame:(Int,Int,Int,Int)=(x:0,y:0,width:100,height:100)

var size=(width:100,25) //½ö½ö¸øÆäÖÐÒ»¸öÔªËØÃüÃû

size.width //½á¹û£º100

size.1 //½á¹û£º25

var httpStatus:(Int,String)=(200,"success") //Ôª×éµÄÔªËØÀàÐͲ¢²»Ò»¶¨Ïàͬ

var (status,description)=httpStatus //Ò»´ÎÐÔ¸³Öµ¸ø¶à¸ö±äÁ¿£¬´Ëʱstatus=200£¬description="success"

//½ÓÊÕÔª×éµÄÆäÖÐÒ»¸öÖµºöÂÔÁíÒ»¸öֵʹÓÃ"_"(×¢ÒâÔÚSwiftÖкܶàÇé¿öÏÂʹÓÃ_ºöÂÔij¸öÖµ»ò±äÁ¿)

var (sta,_)=httpStatus

println("sta=\(sta)") //½á¹û£ºsta=200

/**

* Ôª×é×÷Ϊº¯ÊýµÄ²ÎÊý»ò·µ»ØÖµ£¬½èÖúÔª×éʵÏÖÁ˺¯ÊýµÄ¶à¸ö·µ»ØÖµ

*/

func request()->(code:Int,description:String){

return (404,"not found")

}

var result=request()

result.0 //½á¹û£º404

result.1 //½á¹û£ºnot found

result.code //½á¹û£º404

result.description //½á¹û£ºnot found

¿ÉÑ¡ÀàÐÍ

Ëùν¿ÉÑ¡ÀàÐ;ÍÊÇÒ»¸ö±äÁ¿»ò³£Á¿¿ÉÄÜÓÐÖµÒ²¿ÉÄÜûÓÐÖµÔòÉèÖÃΪ¿ÉÑ¡ÀàÐÍ¡£ÔÚObjCÖÐÈç¹ûÒ»¸ö¶ÔÏóÀàÐÍûÓи³Öµ£¬ÔòĬÈÏΪnil£¬Í¬Ê±nilÀàÐÍÒ²Ö»ÄÜ×÷Ϊ¶ÔÏóÀàÐ͵ÄĬÈÏÖµ£¬¶ÔÓÚÀàËÆÓÚIntµÈ»ù±¾ÀàÐÍÔò¶ÔÓ¦0ÕâÑùµÄĬÈÏÖµ¡£ÓÉÓÚSwiftÊÇÇ¿ÀàÐÍÓïÑÔ£¬Èç¹ûÔÚÉùÃ÷±äÁ¿»ò³£Á¿Ê±Ã»ÓнøÐи³Öµ£¬Swift²¢²»»áĬÈÏÉèÖóõÖµ£¨ÕâÒ»µãºÍÆäËû¸ß¼¶ÓïÑÔ²»Ì«Ò»Ñù£¬ÀýÈçC#ËäȻҲÓпÉÑ¡ÀàÐÍ£¬µ«ÊÇÒªÇó²¢Ã»ÓÐÄÇôÑϸñ£©¡£


/**

* ¿ÉÑ¡ÀàÐÍ»ù´¡

*/

var x:Float? //ʹÓã¿ÉùÃ÷³ÉÒ»¸ö¿ÉÑ¡ÀàÐÍ£¬Èç¹û²»¸³ÖµÄ¬ÈÏΪnil

x=172.0

var y:Float=60.0

//var z=x+y //×¢Òâ´Ë¾ä±¨´í£¬ÒòΪIntºÍInt£¿¸ù±¾¾ÍÊÇÁ½ÖÖ²»Í¬µÄÀàÐÍ£¬ÔÚSwiftÖÐÁ½ÖÖ²»Í¬µÄÀàÐͲ»ÄÜÔËË㣨ÒòΪ²»»á×Ô¶¯½øÐÐÀàÐÍת»¯£©

var z=x!+y //ʹÓ㡽øÐÐÇ¿ÖÆ½â°ü

var age="29"

var ageInt=age.toInt() //×¢ÒâageIntÊÇInt¿ÉÑ¡ÀàÐͶø²»ÊÇIntÀàÐÍ£¨ÒòΪStringµÄtoInt()·½·¨²¢²»Äܱ£Ö¤ÆäÒ»¶¨ÄÜת»¯ÎªIntÀàÐÍ£©

1.SwiftÖÐÀàËÆÓÚIntºÍInt?²¢²»ÊÇͬһÖÖÀàÐÍ£¬²»ÄܽøÐÐÏà¹ØÔËË㣬Èç¹ûÒªÔËËãÖ»Äܽâ°ü£»

2.¿ÉÑ¡ÀàÐÍÆä±¾ÖʾÍÊÇ´ËÀàÐÍÄÚ²¿´æ´¢·ÖΪ¡°Some¡±ºÍ¡°None¡±Á½¸ö²¿·Ö£¬Èç¹ûÓÐÖµÔò´æ´¢µ½¡°Some¡±ÖУ¬Ã»ÓÐÖµÔòΪ¡°None¡±£¨ÔçÆÚPlaygroundÖпÉÒÔ¿´µ½Á½¸ö²¿·Ö£¬Èç½ñÒѾ­È¡ÏûÏÔʾSomeµÈÃèÊöÁË£©£¬Ê¹ÓøÐ̾ºÅÇ¿ÖÆ½â°üµÄ¹ý³Ì¾ÍÊÇÈ¡³ö¡°Some¡±²¿·Ö£»

¼ÈÈ»¿ÉÑ¡ÀàÐÍÓпÉÄÜÓÐÖµ£¬Ò²¿ÉÄÜûÓÐÖµÄÇôÍùÍùÓÐʱºò¾ÍÐèÒªÅжϡ£¿ÉÒÔʹÓÃifÖ±½ÓÅжÏÒ»¸ö¿ÉÑ¡ÀàÐÍÊÇ·ñΪnil£¬ÕâÑùÒ»À´¾Í¿ÉÒÔ¸ù¾ÝÇé¿ö½øÐÐÇ¿ÖÆ½â°ü£¨´ÓSome²¿·ÖÈ¡³öÖµµÄ¹ý³Ì£©£»ÁíÒ»¸öÑ¡Ôñ¾ÍÊÇÔÚÅжϵÄͬʱÈç¹ûÓÐÖµÔò½«Öµ¸³Öµ¸øÒ»¸öÁÙʱ±äÁ¿»ò³£Á¿£¬·ñÔò²»½øÈë´ËÌõ¼þÓï¾ä£¬Õâ¸ö¹ý³Ì³ÆÖ®Îª¡°¿ÉÑ¡°ó¶¨¡±¡£


/**

* ¿ÉÑ¡ÀàÐÍÅжÏ

*/

var age="29"

var ageInt=age.toInt() //×¢ÒâageIntÊÇInt¿ÉÑ¡ÀàÐͶø²»ÊÇIntÀàÐÍ£¨ÒòΪStringµÄtoInt()·½·¨²¢²»Äܱ£Ö¤ÆäÒ»¶¨ÄÜת»¯ÎªIntÀàÐÍ£©

if ageInt==nil {

println("ageInt=nil")

}else{

println("ageInt=\(ageInt!)") //×¢ÒâÕâÀïʹÓøÐ̾ºÅ!Ç¿ÖÆ½âÎö

}

/**

* ¿ÉÑ¡ÀàÐͰó¶¨

* Èç¹û¿ÉÑ¡ÀàÐÍÓÐÖµÔò½«Öµ¸³Öµ¸øÒ»¸öÁÙʱ±äÁ¿»òÕß³£Á¿£¨´Ëʱ´Ë±äÁ¿»òÕß³£Á¿½ÓÊܵÄÖµÒѾ­²»ÊÇ¿ÉÑ¡ÀàÐÍ£©£¬Èç¹ûûÓÐÖµÔò²»Ö´ÐдËÌõ¼þ

*/

if let newAge=ageInt{ //´ËʱnewAge¿ÉÒÔ¶¨Òå³É³£Á¿Ò²¿ÉÒÔ¶¨Òå³É±äÁ¿

println("newAge=\(newAge)") //×¢ÒâÕâÀï²¢²»ÐèÒª¶ÔnewAgeÇ¿ÖÆ½â°ü

}else{

println("ageInt=nil")

}

ͨ¹ýÇ°ÃæµÄÑÝʾ¿ÉÒÔ¿´³öSwiftÖеĿÉÑ¡°ó¶¨Èç¹ûʵ¼Ê¼ÆËã²»µÃ²»½øÐÐÇ¿ÖÆ½â°ü£¬Èç¹ûÒ»¸ö¿ÉÑ¡ÀàÐÍ´ÓµÚÒ»´Î¸³ÖµÖ®ºó¾ÍÄܱ£Ö¤ÓÐÖµÄÇôʹÓÃʱ¾Í²»±Ø½øÐÐÇ¿ÖÆ½â°üÁË£¬ÕâÖÖÇé¿öÏ¿ÉÒÔʹÓÃÒþʽ¿ÉÑ¡½âÎöÀàÐÍ£¨Í¨¹ý¸Ð̾ºÅÉùÃ÷¶ø²»ÊÇÎʺţ©


/**

* Òþʽ½âÎö¿ÉÑ¡ÀàÐÍ

*/

var age:Int!=0 //ͨ¹ý¸Ð̾ºÅÉùÃ÷Òþʽ½âÎö¿ÉÑ¡ÀàÐÍ£¬´ËºóʹÓÃʱËäÈ»ÊÇ¿ÉÑ¡ÀàÐ͵«ÊDz»ÓÃÇ¿ÖÆ½â°ü

age=29

var newAge:Int=age //²»ÓÃÇ¿ÖÆ½â°üÖ±½Ó¸³Öµ¸øIntÀàÐÍ£¨³ÌÐò»á×Ô¶¯½â°ü£©

if var tempAge=age {

println("tempAge=\(tempAge)")

}else{

println("age=nil")

}

ÔËËã·û

SwiftÖÐÖ§³Ö¾ø´ó¶àÊýCÓïÑÔµÄÔËËã·û²¢¸Ä½øÒÔ¼õÉÙ²»±ØÒªµÄ´íÎó£¨ÀýÈçµÈºÅ¸³Öµºó²»·µ»ØÖµ£©£¬ËãÊõÔËËã»á¼ì²éÒç³öÇé¿ö£¬±ØÒªÊ±»¹ÄÜʹÓÃÐÂÔöµÄÒç³öÔËËã·û¡£ÁíÍâSwiftÖл¹¿ÉÒÔ¶Ô¸¡µãÊýʹÓÃÈ¡ÓàÔËËã·û£¬ÐÂÔöÁËÇø¼äÔËËã·û¡£¶ÔÓÚ»ù±¾µÄÔËËã·ûÕâÀï²»ÔÙÒ»Ò»½éÉÜ£¬¼òµ¥¿´Ò»ÏÂSwiftÖеÄÇø¼äÔËËã·ûºÍÒç³öÔËËã·û¡£


/**

* Çø¼äÔËËã·û,ͨ³£ÓÃÓÚÕûÐλòÕß×Ö·û·¶Î§(ÀýÈç"a"..."z"£©

*/

for i in 1...5 { //±ÕÇø¼äÔËËã·û...£¨´Ó1µ½5£¬°üº¬5£©

println("i=\(i)")

}

for i in 1..<5{ //°ë¿ªÇø¼äÔËËã·û..<(´Ó1µ½4)

println("i=\(i)")

}

var str = "hello world."

var range="a"..."z"

for t in str {

if range.contains(String(t)) {

print(t) //½á¹û£ºhelloworld

}

}

/**

* Òç³öÔËËã·û

*/

var a=UInt8.max //a=255

//var b:UInt8=a+1 //×¢Òâb»á³öÏÖÒç³ö,´Ë¾ä±¨´í

//ÏÂÃæÊ¹ÓÃÒç³öÔËËã·û£¬½á¹ûΪ£º0£¬ÀàËÆµÄ»¹ÓÐ&-¡¢&*¡¢&/

//ʹÓÃÒç³öÔËËã·û¿ÉÒÔÔÚ×î´óÖµºÍ×îСֵ֮ǰѭ»·¶ø²»»á±¨´í

var b:UInt8=a &+ 1

Òç³öÔËËã·ûµÄÔ­ÀíÆäʵºÜ¼òµ¥£¬ÀýÈç¶ÔÓÚUInt8£¬Èç¹û8λ¾ùΪ1ÔòÊ®½øÖƱíʾÊÇ255£¬µ«Êǵ±¼Ó1Ö®ºóÔò±ä³ÉÁË9λ¡°100000000¡±£¬³öÏÖÁËÒç³öµ«ÊÇUInt8±¾ÉíÖµÖ»ÄÜ´æ´¢8룬ËùÒÔÈ¡ºóÃæ8λ¾Í±ä³ÉÁË¡°00000000¡±£¬Ê®½øÖƱíʾ¾ÍÊÇ0¡£

¿ØÖÆÁ÷

SwiftÖеĶàÊý¿ØÖÆÁ÷ºÍÆäËûÓïÑÔ²î±ð²¢²»´ó£¬ÀýÈçfor¡¢while¡¢do while¡¢if¡¢switchµÈ£¬¶øÇÒÓÐÐ©Ç°ÃæÒѾ­Ê¹Óùý£¨ÀýÈçfor inÑ­»·£©£¬ÕâÀォ×ÅÖØ½éÉÜһЩ²»Í¬µã¡£


var a=["a","b","c","d","e","f","g"]

let b=a[1]

/**

* switchÖ§³ÖÒ»¸öcase¶à¸öģʽƥÅ䣬ͬʱcaseºó²»ÓÃдbreakÒ²»áÔÚÆ¥Åäµ½ÖÖÇé¿öºó×Ô¶¯Ìø³öÆ¥Å䣬²»´æÔÚÒþʽ¹á´©£¬Èç¹ûÏëÒª¹á´©ÔÚcaseÖ®ºóÌí¼Ó"fallthrough"¹Ø¼ü×Ö

*/

switch b{

case "a","b":

println("b=a or b=b")

case "c","d","e","f":

println("b in (c,d,e,f)")

default:

println("b=g")

}

/**

* Æ¥ÅäÇø¼ä,ͬʱעÒâswitch±ØÐëÆ¥ÅäËùÓÐÇé¿ö£¬·ñÔò±ØÐë¼ÓÉÏdefault

*/

let c:Int=88

switch c{

case 1...60:

println("1-60")

case 61...90:

println("61-90")

case 91...100:

println("91-100")

default:

println("1>c>100")

}

/**

* Ôª×鯥Åä¡¢Öµ°ó¶¨¡¢whereÌõ¼þÆ¥Åä

* ×¢ÒâÏÂÃæµÄÆ¥ÅäûÓÐdefault£¬ÒòΪËü°üº¬ÁËËùÓÐÇé¿ö

*/

var d=(x:900,y:0)

switch d{

case (0,0):

println("d in (0,0)")

case (_,0): //ºöÂÔxֵƥÅä

println("d in y")

case (0,let y)://Öµ°ó¶¨

println("d in x,y=\(y)")

case (-100...100,-100...100): //×¢ÒâÕâÀïÓпÉÄܺ͵ÚÒ»¡¢¶þ¡¢Èý¸öÌõ¼þÖØºÏ£¬µ«ÊÇSwiftÔÊÐí¶à¸öcaseÆ¥Åäͬһ¸öÌõ¼þ£¬µ«ÊÇÖ»»áÖ´ÐеÚÒ»¸öÆ¥Åä

println("x in£¨0-100£©£¬y in £¨0-100£©")

case let (x,y) where x==y: //whereÌõ¼þÆ¥Åä,×¢ÒâÕâÀïµÄд·¨µÈͬÓÚ£º(let x,let y) where x==y

println("x=y=\(x)")

case let (x, y):

println("x=\(x),y=\(y)")

}

ÔÚÆäËûÓïÑÔÖÐͨ³£¿ÉÒÔʹÓÃbreak¡¢continue¡¢return£¨SwiftÖÐÌí¼ÓÁËfallthrough£©µÈÀ´ÖÕÖ¹»òÕßÌø³öij¸öÖ´ÐÐÓï¾ä£¬µ«ÊǶÔÓÚÆäÐÐΪÍùÍùÊǾßÓй̶¨ÐԵģ¬ÀýÈçbreakÖ»ÄÜÖÕÖ¹ÆäËùÔÚµÄÄÚ²ãÑ­»·£¬¶øreturnÖ»ÄÜÌø³öËüËùÔڵĺ¯Êý¡£ÔÚSwiftÖÐÕâÖÖ¿ØÖÆ×ªÒƹ¦Äܵõ½Á˼ÓÇ¿£¬ÄǾÍÊÇʹÓñêÇ©¡£ÀûÓñêÇ©Äã¿ÉÒÔËæÒâÖ¸¶¨×ªÒƵÄλÖã¬ÀýÈçÏÂÃæµÄ´úÂëÑÝʾÁËÈçºÎÖ±½Óͨ¹ý±êÇ©Ìø³ö×îÍâ²ãÑ­»·£º


var a=5

whileLoop:

while --a>0 {

for var i=0;i<a;++i{

println("a=\(a),i=\(i)")

break whileLoop

//Èç¹û´Ë´¦Ö±½ÓʹÓÃbreak½«Ìø³öforÑ­»·£¬¶øÓÉÓÚÕâÀïʹÓñêǩֱ½ÓÌø³öÁËwhile£¬½á¹ûÖ»»á´òÓ¡Ò»´Î£¬Æä½á¹ûΪ£ºa=4,i=0

}

}

º¯ÊýºÍ±Õ°ü

º¯Êý

º¯ÊýÊÇÒ»¸öÍê³É¶ÀÁ¢ÈÎÎñµÄ´úÂë¿é£¬SwiftÖеĺ¯Êý²»½ö¿ÉÒÔÏñCÓïÑÔÖеĺ¯ÊýÒ»Ñù×÷Ϊº¯ÊýµÄ²ÎÊýºÍ·µ»ØÖµ£¬¶øÇÒ»¹Ö§³ÖǶÌ×£¬²¢ÇÒÓÐC#Ò»ÑùµÄº¯Êý²ÎÊýĬÈÏÖµ¡¢¿É±ä²ÎÊýµÈ¡£


//¶¨ÒåÒ»¸öº¯Êý£¬×¢Òâ²ÎÊýºÍ·µ»ØÖµ£¬ Èç¹ûûÓзµ»ØÖµ¿ÉÒÔ²»Ð´·µ»ØÖµ»òÕßд³ÉVoid¡¢¿ÕÔª×é()(×¢ÒâVoidµÄ±¾ÖʾÍÊÇ¿ÕÔª×é)

func sum(num1:Int,num2:Int)->Int{

return num1 + num2

}

sum(1, 2)

¿ÉÒÔ¿´µ½SwiftÖеĺ¯Êý½ö½ö±í´ïÐÎʽÓÐËùÇø±ð(¶¨ÒåÐÎʽÀàËÆÓÚJavascript£¬µ«ÊÇjs²»ÓÃÊéд·µ»ØÖµ)£¬µ«ÊDZ¾Öʲ¢Ã»ÓÐÌ«´óµÄÇø±ð¡£²»¹ýSwiftÖжԺ¯Êý²ÎÊýÇ¿µ÷Á½¸ö¸ÅÄî¾ÍÊǾֲ¿²ÎÊýÃû£¨ÓֽС°ÐÎʽ²ÎÊý¡±£©ºÍÍⲿ²ÎÊýÃû£¬Õ⼫´óµÄÕչ˵½ÁËObjC¿ª·¢ÕߵĿª·¢ÌåÑé¡£ÔÚÉÏÃæµÄÀý×ÓÖе÷ÓÃsumº¯Êý²¢Ã»Óд«µÝÈκβÎÊýÃû£¬ÒòΪnum1¡¢num2½ö½ö×÷Ϊ¾Ö²¿²ÎÊýÃûÔÚº¯ÊýÄÚ²¿Ê¹Ó㬵«ÊÇÈç¹û¸øº¯ÊýÖ¸¶¨Ò»¸öÍⲿ²ÎÊýÃûÔÚµ÷ÓÃʱ¾Í±ØÐëÖ¸¶¨²ÎÊýÃû¡£ÁíÍâÇ°ÃæÒ²Ìáµ½¹ØÓÚSwiftÖеÄĬÈϲÎÊý¡¢¿É±ä³¤¶ÈµÄ²ÎÊý£¬°üÀ¨Ò»Ð©¸ß¼¶ÓïÑÔÖеÄÊäÈëÊä³ö²ÎÊý£¬Í¨¹ýÏÂÃæµÄÀý×Ó´ó¼Ò»áÓÐÒ»¸öÈ«ÃæµÄÁ˽⡣


/**

/**

* º¯Êý²ÎÊýÃû·ÖΪ¾Ö²¿²ÎÊýÃûºÍÍⲿ²ÎÊýÃû

*/

func split(string a:String,seperator b:Character)->[String]{

return split(a, maxSplit: Int.max, allowEmptySlices: false, isSeparator: {$0==b})

}

//ÓÉÓÚ¸øsplitº¯ÊýÉèÖÃÁËÍⲿ²ÎÊýÃûstringºÍseperator£¬ËùÒÔÖ´ÐеÄʱºò±ØÐë´øÉÏÍⲿ²ÎÊýÃû£¬´Ë´¦¿ÉÒÔ¿´µ½Ò»¸öÓÐÒâÒåµÄÍⲿ²ÎÊýÃû´ó´ó½ÚÊ¡¿ª·¢ÕßʹÓóɱ¾

split(string: "hello,world,!", seperator: ",") //½á¹û£º["hello", "world", "!"]

//ÏÂÃæÍ¨¹ýÔÚ¾Ö²¿²ÎÊýÃûǰ¼ÓÉÏ#À´¼òдÍⲿ²ÎÊýÃû£¨´Ëʱ¾Ö²¿²ÎÊýÃûºÍÍⲿ²ÎÊýÃûÏàͬ£©

func split2(#string:String,#seperator:Character)->[String]{

return split(string, maxSplit: Int.max, allowEmptySlices: false, isSeparator: {$0==seperator})

}

split2(string: "hello,world,!", seperator: ",")

//ÉÏÃæµÄsplitº¯ÊýµÄ×îºóÒ»¸ö²ÎÊýĬÈÏÉèÖÃΪ",",×¢ÒâÈç¹ûʹÓÃĬÈϲÎÊýÄÇô´Ë²ÎÊýÃû½«Ä¬ÈÏ×÷ΪÍⲿ²ÎÊýÃû£¨´Ëʱ¾Ö²¿²ÎÊýÃûºÍÍⲿ²ÎÊýÃûÏàͬ£©

func split3(#string:String,seperator:Character=",")->[String]{

return split(string, maxSplit: Int.max, allowEmptySlices: false, isSeparator: {$0==seperator})

}

split3(string: "hello,world,!", seperator: ",") //½á¹û£º["hello", "world", "!"]

split3(string: "hello world !", seperator: " ") //½á¹û£º["hello", "world", "!"]

//µ«ÊÇÈç¹ûÓÐĬÈÏÖµ£¬ÓÖ²»ÏëÖ¸¶¨¾Ö²¿²ÎÊýÃû¿ÉÒÔʹÓá°_¡±È¡ÏûÍⲿ²ÎÊýÃû

func split4(string:String,_ seperator:Character=",")->[String]{

return split(string, maxSplit: Int.max, allowEmptySlices: false, isSeparator: {$0==seperator})

}

split4("hello,world,!", ",") //½á¹û£º["hello", "world", "!"]

/**

* ¿É±ä²ÎÊý,Ò»¸öº¯Êý×î¶àÓÐÒ»¸ö¿É±ä²ÎÊý²¢ÇÒ×÷Ϊ×îºóÒ»¸ö²ÎÊý

* ÏÂÃæstrings²ÎÊýÔÚÄÚ²¿ÊÇÒ»¸ö[String]£¬¶ÔÓÚÍⲿÊDz»¶¨¸öÊýµÄString²ÎÊý

*/

func joinStr(seperator:Character=",",strings:String...)->String{

var result:String=""

for var i=0;i<strings.count;++i{

if i != 0{

result.append(seperator)

}

result+=strings[i]

}

return result

}

joinStr(seperator:" ", "hello","world","!") //½á¹û£º"hello world !"

/**

* º¯Êý²ÎÊýĬÈÏÊdz£Á¿£¬²»ÄÜÖ±½ÓÐ޸ģ¬Í¨¹ýÉùÃ÷var¿ÉÒÔ½«Æäת»¯Îª±äÁ¿£¨µ«ÊÇ×¢ÒâCÓïÑÔ²ÎÊýĬÈÏÊDZäÁ¿£©

* µ«ÊÇ×¢ÒâÕâ¸ö±äÁ¿¶ÔÓÚÍⲿÊÇÎÞЧµÄ£¬º¯ÊýÖ´ÐÐÍê¾ÍÏûʧÁË

*/

func sum2(var num1:Int,num2:Int)->Int{

num1 = num1 + num2

return num1

}

sum2(1, 2) //½á¹û£º3

/**

* ÊäÈëÊä³ö²ÎÊý

* ͨ¹ýÊäÈëÊä³ö²ÎÊý¿ÉÒÔÔÚº¯ÊýÄÚ²¿Ð޸ĺ¯ÊýÍⲿµÄ±äÁ¿£¨×¢Òâµ÷ÓÃʱ²»ÄÜÊdz£Á¿»ò×ÖÃæÁ¿£©

* ×¢Ò⣺ÏÂÃæµÄswap½ö½öΪÁËÑÝʾ£¬Êµ¼ÊʹÓÃʱÇëÓÃSwiftµÄÈ«¾Öº¯Êýswap

*/

func swap(inout a:Int ,inout b:Int){

a=a+b

b=a-b

a=a-b

}

var a=1,b=2

swap(&a, &b) //µ÷ÓÃʱ²ÎÊý¼ÓÉÏ¡°&¡±·ûºÅ

println("a=\(a),b=\(b)") //½á¹û£º"a=2,b=1"

ºÍºÜ¶àÓïÑÔÒ»Ñù£¬SwiftÖеĺ¯Êý±¾ÉíÒ²¿ÉÒÔ¿´×öÒ»ÖÖÀàÐÍ£¬¼È¿ÉÒÔ×÷Ϊ²ÎÊýÓÖ¿ÉÒÔ×÷Ϊ·µ»ØÖµ¡£


/**

* º¯ÊýÀàÐÍ

*/

var sum3=sum //×Ô¶¯ÍƶÏsum3µÄÀàÐÍ£º(Int,Int)->Int,×¢ÒⲻͬµÄº¯ÊýÀàÐÍÖ®¼ä²»ÄÜÖ±½Ó¸³Öµ

sum3(1,2) //½á¹û£º3

//º¯Êý×÷Ϊ·µ»ØÖµ

func fn()->(Int,Int)->Int{

//ÏÂÃæµÄº¯ÊýÊÇÒ»¸öǶÌ׺¯Êý£¬×÷ÓÃÓÚÊÇÔÚfnº¯ÊýÄÚ²¿

func minus(a:Int,b:Int)->Int{

return a-b

}

return minus;

}

var minus=fn()

//º¯Êý×÷Ϊ²ÎÊý

func caculate(num1:Int,num2:Int,fn:(Int,Int)->Int)->Int{

return fn(num1,num2)

}

caculate(1, 2, sum) //½á¹û£º3

caculate(1,2, minus) //½á¹û£º-1

±Õ°ü

SwiftÖеıհüÆäʵ¾ÍÊÇÒ»¸öº¯Êý´úÂë¿é£¬ËüºÍObjCÖеÄBlock¼°C#¡¢JavaÖеÄlambdaÊÇÀàËÆµÄ¡£±Õ°üµÄÌØµã¾ÍÊÇ¿ÉÒÔ²¶»ñºÍ´æ´¢ÉÏÏÂÎÄÖеij£Á¿»òÕß±äÁ¿µÄÒýÓ㬼´Ê¹ÕâЩ³£Á¿»òÕß±äÁ¿ÔÚÔ­×÷ÓÃÓòÒѾ­±»Ïú»ÙÁËÔÚ´úÂë¿éÖÐÈÔÈ»¿ÉÒÔʹÓá£ÊÂʵÉÏÇ°ÃæµÄÈ«¾Öº¯ÊýºÍǶÌ׺¯ÊýÒ²ÊÇÒ»ÖÖ±Õ°ü£¬¶ÔÓÚÈ«¾Öº¯ÊýËü²»»á²¶»ñÈκγ£Á¿»òÕß±äÁ¿£¬¶ø¶ÔÓÚǶÌ׺¯ÊýÔò¿ÉÒÔ²¶»ñÆäËùÔÚº¯ÊýµÄ³£Á¿»òÕß±äÁ¿¡£Í¨³£ÎÒÃÇ˵µÄ±Õ°ü¸ü¶àµÄÖ¸µÄÊDZհü±í´ïʽ£¬Ò²¾ÍÊÇûÓк¯ÊýÃû³ÆµÄ´úÂë¿é£¬Òò´ËÒ²³ÆÎªÄäÃû±Õ°ü¡£

ÔÚSwiftÖбհü±í´ïʽµÄ¶¨ÒåÐÎʽÈçÏ£º

{ ( parameters ) -> returnType in

statements

}

ÏÂÃæÍ¨¹ýÒ»¸öÀý×Ó¿´Ò»ÏÂÈçºÎͨ¹ý±Õ°ü±í´ïʽÀ´¼ò»¯Ò»¸öº¯ÊýÀàÐ͵IJÎÊý£¬ÔÚÏÂÃæµÄÀý×ÓÖбհüµÄÐÎʽҲÊÇÒ»¶øÔÙÔÙ¶øÈýµÄ±»¼ò»¯£¬³ä·Ö˵Ã÷ÁËSwiftÓï·¨µÄ¼ò½àÐÔ£º


func sum(num1:Int,num2:Int)->Int{

return num1 + num2

}

func minus(num1:Int,num2:Int)->Int{

return num1 - num2

}

func caculate(num1:Int,num2:Int,fn:(Int,Int)->Int)->Int{

return fn(num1,num2)

}

var (a,b)=(1,2)

caculate(a, b, sum) //½á¹û£º3

caculate(a, b, minus) //½á¹û£º-1

//ÀûÓñհü±í´ïʽ¼ò»¯±Õ°üº¯Êý

caculate(a, b, {(num1:Int,num2:Int)->Int in

return num1 - num2

}) //½á¹û£º-1

//¼ò»¯ÐÎʽ,¸ù¾ÝÉÏÏÂÎÄÍÆ¶ÏÀàÐͲ¢ÇÒ¶ÔÓÚµ¥±í´ïʽ±Õ°ü£¨Ö»ÓÐÒ»¸öÓï¾ä£©¿ÉÒÔÒþ²Øreturn¹Ø¼ü×Ö

caculate(a, b, { num1,num2 in

num1 - num2

}) //½á¹û£º-1

//Ôٴμò»¯£¬Ê¹ÓòÎÊýÃûËõд,ʹÓÃ$0...$n´ú±íµÚn¸ö²ÎÊý£¬²¢ÇÒ´Ëin¹Ø¼ü×ÖҲʡÂÔÁË

caculate(a, b, {

$0 - $1

}) //½á¹û£º-1

¿¼Âǵ½±Õ°ü±í´ïʽµÄ¿É¶ÁÈ¡ÐÔ£¬SwiftÖÐÈç¹ûÒ»¸öº¯ÊýµÄ×îºóÒ»¸ö²ÎÊýÊÇÒ»¸öº¯ÊýÀàÐ͵IJÎÊý£¨»òÕß˵ÊDZհü±í´ïʽ£©£¬Ôò¿ÉÒÔ½«´Ë²ÎÊýдÔÚº¯ÊýÀ¨ºÅÖ®ºó£¬ÕâÖÖ±Õ°ü³ÆÖ®Îª¡°Î²Ëæ±Õ°ü¡±¡£


func sum(num1:Int,num2:Int)->Int{

return num1 + num2

}

func minus(num1:Int,num2:Int)->Int{

return num1-num2

}

func caculate(num1:Int,num2:Int,fn:(Int,Int)->Int)->Int{

return fn(num1,num2)

}

var (a,b)=(1,2)

//Î²Ëæ±Õ°ü£¬×îºóÒ»¸ö²ÎÊýÊDZհü±í´ïʽʱ¿ÉÒÔÐ¶ÔØÀ¨ºÅÖ®ºó£¬Í¬Ê±×¢ÒâÈç¹ûÕâ¸öº¯ÊýÖ»ÓÐÒ»¸ö±Õ°ü±í´ïʽ²ÎÊýʱ¿ÉÒÔÁ¬Í¨À¨ºÅÒ»¿éÊ¡ÂÔ

//Çë×¢ÒâºÍº¯Êý¶¨Òå½øÐÐÇø·Ö

caculate(a, b){

$0 - $1

} //½á¹û£º-1

Ç°ÃæËµ¹ý±Õ°üÖ®ËùÒÔ³ÆÖ®Îª¡°±Õ°ü¡±¾ÍÊÇÒòΪÆä¿ÉÒÔ²¶»ñÒ»¶¨×÷ÓÃÓòÄڵij£Á¿»òÕß±äÁ¿½ø¶ø±ÕºÏ²¢°ü¹ü×Å¡£


func add()->()->Int{

var total=0

var step=1

func fn()->Int{

total+=step

return total

}

return fn

}

//fn²¶»ñÁËtotalºÍstep£¬¾¡¹ÜÏÂÃæµÄadd()Ö´ÐÐÍêºótotalºÍstep±»ÊÍ·Å£¬µ«ÊÇÓÉÓÚfn²¶»ñÁ˶þÕߵĸ±±¾£¬ËùÒÔfn»áËæ×ÅÁ½¸ö±äÁ¿µÄ¸±±¾Ò»Æð±»´æ´¢

var a=add()

a() //½á¹û£º1

a() //½á¹û£º2£¬ËµÃ÷aÖб£´æÁËtotalµÄ¸±±¾£¨·ñÔò½á¹û»áÊÇ1£©

var b=add()

b() //½á¹û£º1 £¬ËµÃ÷aºÍbµ¥¶À±£´æÁËtotalµÄ¸±±¾£¨·ñÔò½á¹û»áÊÇ3£©

var c=b

c() //½á¹û£º2£¬ËµÃ÷±Õ°üÊÇÒýÓÃÀàÐÍ£¬»»¾ä»°Ëµº¯ÊýÊÇÒýÓÃÀàÐÍ£¨·ñÔò½á¹û»áÊÇ1£©

Swift»á×Ô¶¯¾ö¶¨²¶»ñ±äÁ¿»òÕß³£Á¿¸±±¾µÄ¿½±´ÀàÐÍ£¨Öµ¿½±´»òÕßÒýÓÿ½±´£©¶ø²»ÐèÒª¿ª·¢Õß¹ØÐÄ£¬ÁíÍâ±»²¶»ñµÄ±äÁ¿»òÕß³£Á¿µÄÄÚ´æ¹ÜÀíͬÑùÊÇÓÉSwiftÀ´¹ÜÀí£¬ÀýÈçµ±ÉÏÃæµÄº¯Êýa²»ÔÙʹÓÃÁËÄÇôfn²¶»ñµÄÁ½¸ö±äÁ¿Ò²¾ÍÊÍ·ÅÁË¡£

   
2083 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ