Swift函數(shù)

函數(shù)的定義和調(diào)用

函數(shù)是一個(gè)組織在一起的程序代碼集合,用來(lái)完成某個(gè)特定的功能。Swift使用的關(guān)鍵字func進(jìn)行函數(shù)的定義

函數(shù)的定義格式如下

func 函數(shù)名(參數(shù)變量:類(lèi)型) -> 返回類(lèi)型 {

    程序語(yǔ)句

    return 結(jié)果
}

定義一個(gè)無(wú)參數(shù)并且無(wú)返回類(lèi)型的函數(shù)

func sayhello(){
        
        print("hello Swift")
    }

函數(shù)的調(diào)用

sayhello()

定義一個(gè)返回Int類(lèi)型的函數(shù)

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

在Swift的環(huán)境中,可以為函數(shù)的參數(shù)設(shè)置默認(rèn)值

 func sum1(num1:Int,num2:Int,num3:Int=3) -> Int {
        
        return num1+num2+num3
    }

設(shè)置可變的函數(shù)參數(shù)數(shù)量

 func sum2(numbers:Int...) -> Int {
        
        
        var number=0
        for num in numbers {
            
            number += num;
        }
        
        return number;
        
    }

函數(shù)作為參數(shù)和返回類(lèi)型

func getMaxNum(num1:Int,num2:Int) -> Int {
        
        return num1>num2 ?num1:num2
        
    }
    
    func getMinNum(num1:Int,num2:Int) -> Int {
        
        return num1<num2 ?num1:num2
        
    }
    //這里是3個(gè)參數(shù)分別是
    //funNmae:(Int,Int)->Int
    //num1
    //num2
    func getRes(funNmae:(Int,Int)->Int,num1:Int,num2:Int){
        
        print(funNmae(num1,num2));
    }

調(diào)用函數(shù)作為參數(shù)和返回類(lèi)型的函數(shù)

 getRes(funNmae: getMaxNum, num1: 1, num2: 2)

函數(shù)作為返回類(lèi)型

func getResut(number1:Int,number2:Int)->(Int,Int)->Int {
        
       return number1<number2 ?getMinNum:getMaxNum
 }

//調(diào)用函數(shù)作為返回類(lèi)型的函數(shù)
 let fun = getResut(number1: 2, number2: 3);
 print(fun(7,5))

元組作為函數(shù)的返回類(lèi)型,實(shí)現(xiàn)多個(gè)返回值

func getResut1() -> (name:String,age:Int,sex:String) {
        
        return (name:"小妹",age:12,sex:"女")
    }

使用函數(shù)類(lèi)型

使用函數(shù)類(lèi)型就跟使用其他的類(lèi)型一樣。比如可以定義一個(gè)常量和變量,其類(lèi)型就是函數(shù),而且可以給這個(gè)函數(shù)賦值

 func getResut2(number1:Int,number2:Int)->Int {
  
        return (number1+number2)
 }

//調(diào)用
 let res1 = getResut2
 print(res1(1,3))

函數(shù)的輸入輸出參數(shù)

如果想要一個(gè)函數(shù)可以修改參數(shù)的值,并且這些修改在函數(shù)結(jié)束調(diào)用后仍然存在,那就定義輸入輸出參數(shù),在參數(shù)類(lèi)型的前面添加inout關(guān)鍵字來(lái)實(shí)現(xiàn)
同時(shí),傳入函數(shù)的參數(shù)不能是常量必須是變量,當(dāng)傳入的參數(shù)作為輸入輸出參數(shù)時(shí),需要在參數(shù)面前加入&符號(hào),表示這個(gè)參數(shù)值是可以被修改的

  func getResut4(number1:inout Int,number2: inout Int) {
        
        let tem=number1
        number1=number2
        number2=tem
    }

//調(diào)用

 var num1=1
 var num2=2
 getResut4(number1: &num1, number2: &num2)
 print(num2)
        

函數(shù)的遞歸用法

func getResut5(num:Int) -> Int {
        if (num<=1)
        {
             return 2
            
        }
         return getResut5(num:num-2)+getResut5(num:num-1)
       
    }

常用的內(nèi)置函數(shù)

  • min最小值函數(shù)
print(min(1, 2))
  • max最大值函數(shù)
print(max(2, 10))
  • filter函數(shù)通常用于查找在數(shù)組元素中,滿足指定條件的元素。例如查找1~10之間可以被數(shù)字3整除的數(shù)字
for index in (1...10).filter({$0%3==0}) {
            
            print(index)
 }
  • map函數(shù)通常用于將數(shù)組中的每個(gè)元素,通過(guò)指定的方法進(jìn)行轉(zhuǎn)換摊崭。例如將一個(gè)整數(shù)數(shù)組每個(gè)元素乘以3
for index in (1...3).map({$0*3}) {
            
       print(index)
 }
  • reduce函數(shù)可以把數(shù)組元素組合計(jì)算為一個(gè)值
 let res5=[1,2,3,4].reduce(0){$0+$1}
 print("結(jié)果 ",res5);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市杰赛,隨后出現(xiàn)的幾起案子呢簸,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件根时,死亡現(xiàn)場(chǎng)離奇詭異瘦赫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蛤迎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)确虱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人替裆,你說(shuō)我怎么就攤上這事校辩。” “怎么了辆童?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵宜咒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我胸遇,道長(zhǎng)荧呐,這世上最難降的妖魔是什么汉形? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任纸镊,我火速辦了婚禮,結(jié)果婚禮上概疆,老公的妹妹穿的比我還像新娘逗威。我一直安慰自己,他們只是感情好岔冀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布凯旭。 她就那樣靜靜地躺著,像睡著了一般使套。 火紅的嫁衣襯著肌膚如雪罐呼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天侦高,我揣著相機(jī)與錄音嫉柴,去河邊找鬼。 笑死奉呛,一個(gè)胖子當(dāng)著我的面吹牛计螺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞧壮,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼登馒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咆槽!你這毒婦竟也來(lái)了陈轿?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麦射,沒(méi)想到半個(gè)月后赠堵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡法褥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年茫叭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片半等。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揍愁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杀饵,到底是詐尸還是另有隱情莽囤,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布切距,位于F島的核電站朽缎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谜悟。R本人自食惡果不足惜话肖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望葡幸。 院中可真熱鬧最筒,春花似錦、人聲如沸蔚叨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔑水。三九已至邢锯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搀别,已是汗流浹背丹擎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留领曼,地道東北人鸥鹉。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像庶骄,于是被迫代替她去往敵國(guó)和親毁渗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 函數(shù)是用來(lái)完成特定任務(wù)的獨(dú)立的代碼塊单刁。給一個(gè)函數(shù)起一個(gè)合適的名字灸异,用來(lái)標(biāo)識(shí)函數(shù)做什么府适,并且當(dāng)函數(shù)需要執(zhí)行的時(shí)候,這...
    窮人家的孩紙閱讀 811評(píng)論 2 1
  • 函數(shù)是用來(lái)完成特定任務(wù)的獨(dú)立的代碼塊肺樟¢艽海可以給函數(shù)起一個(gè)名字,用于標(biāo)識(shí)一個(gè)函數(shù)么伯,當(dāng)函數(shù)需要執(zhí)行的時(shí)候疟暖,這個(gè)名字就會(huì)用...
    EndEvent閱讀 743評(píng)論 1 3
  • Swift 函數(shù)用來(lái)完成特定任務(wù)的獨(dú)立的代碼塊。Swift使用一個(gè)統(tǒng)一的語(yǔ)法來(lái)表示簡(jiǎn)單的C語(yǔ)言風(fēng)格的函數(shù)到復(fù)雜的O...
    零度_不結(jié)冰閱讀 322評(píng)論 0 0
  • Swift 函數(shù) Swift函數(shù)用來(lái)完成特定任務(wù)的獨(dú)立的代碼塊田柔。Swift使用一個(gè)統(tǒng)一的語(yǔ)法來(lái)表示簡(jiǎn)單的C語(yǔ)言風(fēng)格...
    Albert_Li99閱讀 1,690評(píng)論 0 2
  • 總是會(huì)莫名其妙地來(lái)了一場(chǎng)小情緒 什么也看不慣什么也不想理 不明所以的獨(dú)自傷悲 也什么都不想說(shuō) 不懂得這是為什么 是...
    空竹小城閱讀 776評(píng)論 0 0