函數(shù)

今天我們就來說說Go語言中函數(shù)的定義方式,幾乎所有的語言都有函數(shù)录语,所以我在這里認(rèn)為大家有一種編程語言的經(jīng)驗(yàn)了倍啥,什么形參什么虛參什么是返回值,這些概念就不給大家一一介紹了澎埠,如果不懂的同學(xué)可以私下找我虽缕, 我給你但講。蒲稳。氮趋。在這里給大家補(bǔ)充一個(gè),方法與函數(shù)的區(qū)別江耀,因?yàn)樵趈ava中基本都是叫方法剩胁,Pyhton基本有函數(shù)與方法這兩個(gè)稱呼,Go中沒有對(duì)象的概念所以他只有函數(shù)這個(gè)叫法祥国,那么這兩種說法分別代表什么意思昵观?其實(shí)它倆是一樣的,如果你非要糾結(jié)說一下不同那么

  • 方法:設(shè)計(jì)層面
  • 函數(shù):程序運(yùn)行舌稀、過程式的稱謂

ok,關(guān)于函數(shù)的前奏就講那么多啊犬,我們直接上一段Go的函數(shù)

func test(a ,b int, op string) int

函數(shù)的定義是乎與變量的定義是一樣的,都是類型在后壁查,名稱在前
上面的test函數(shù)有點(diǎn)簡(jiǎn)單了觉至,我們來點(diǎn)復(fù)雜點(diǎn)的

func eval(a, b int, op string) (int, error) {
    switch op {
    case "+":
        return a + b, nil
    case "-":
        return a - b, nil
    case "*":
        return a * b, nil
    case "/":
        q, _ := div(a, b)
        return q, nil
    default:
        return 0, fmt.Errorf(
            "unsupported operation: %s", op)
    }
}

這里需要注意的是eval函數(shù)接受兩個(gè)參數(shù), 一個(gè)是int, 一個(gè)是error 關(guān)于這個(gè)error呢我們前幾節(jié)講過了睡腿,這是Go的一種特殊的用法
我們?cè)賮硪粋€(gè)數(shù)學(xué)計(jì)算

func div(a, b int) (q, r int) {
    return a / b, a % b
}

div函數(shù)就是一個(gè)整除與求余的函數(shù)语御,這個(gè)函數(shù)的返回值,可以公用一個(gè)int席怪,是不是還不錯(cuò)呢SΥ场!何恶!
從這幾個(gè)函數(shù)中孽锥,我們基本就能得到一些Go函數(shù)的共有特征

  • 函數(shù)返回值可以起多個(gè)名字
  • 但是這種僅限于非常簡(jiǎn)單的函數(shù)
  • 對(duì)于調(diào)用者而言沒有任何區(qū)別

其實(shí)函數(shù)還可以作為參數(shù),可以作為返回值细层。
舉個(gè)例子給同學(xué)們看一下

func apply(op func(int, int) int, a, b int) int {
    return op(a, b)
}

apply 函數(shù)有三個(gè)參數(shù)一個(gè)int返回值惜辑,里面的op 類型是一個(gè)匿名函數(shù)它有兩個(gè)參數(shù)一個(gè)int返回值。
Go里面的參數(shù)沒有可變參數(shù)疫赎、操作符重載盛撑、函數(shù)重載這些概念,但是我們可以通過一些特殊的方式捧搞,實(shí)現(xiàn)這些功能抵卫,比如今天我們講可變參數(shù)在Go中怎么操作。
我們來計(jì)算1加到100

func sum(numbers ...int) int {
    s := 0
    for i := range numbers {
        s += numbers[i]
    }
    return s
}

在sum函數(shù)中我們就用可變參數(shù)列表胎撇,實(shí)現(xiàn)了其他語言中一部分可變參數(shù)的功能介粘,怎么樣你學(xué)會(huì)了嘛。如果同學(xué)們碰到了哪里不懂的晚树,可以在我們的群里面追問姻采,謝謝大家!>粼鳌?住!宝鼓!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刑棵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子愚铡,更是在濱河造成了極大的恐慌蛉签,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沥寥,死亡現(xiàn)場(chǎng)離奇詭異正蛙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)营曼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門乒验,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒂阱,你說我怎么就攤上這事锻全。” “怎么了录煤?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵鳄厌,是天一觀的道長。 經(jīng)常有香客問我妈踊,道長了嚎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮歪泳,結(jié)果婚禮上萝勤,老公的妹妹穿的比我還像新娘。我一直安慰自己呐伞,他們只是感情好敌卓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伶氢,像睡著了一般趟径。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上癣防,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天蜗巧,我揣著相機(jī)與錄音,去河邊找鬼蕾盯。 笑死幕屹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刑枝。 我是一名探鬼主播香嗓,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼装畅!你這毒婦竟也來了靠娱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤掠兄,失蹤者是張志新(化名)和其女友劉穎像云,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚂夕,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迅诬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婿牍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侈贷。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖等脂,靈堂內(nèi)的尸體忽然破棺而出俏蛮,到底是詐尸還是另有隱情,我是刑警寧澤上遥,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布搏屑,位于F島的核電站,受9級(jí)特大地震影響粉楚,放射性物質(zhì)發(fā)生泄漏辣恋。R本人自食惡果不足惜亮垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伟骨。 院中可真熱鬧饮潦,春花似錦、人聲如沸底靠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暑中。三九已至,卻和暖如春鲫剿,著一層夾襖步出監(jiān)牢的瞬間鳄逾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工灵莲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雕凹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓政冻,卻偏偏與公主長得像枚抵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子明场,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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

  • 今天下午沒課汽摹,一覺睡到四點(diǎn)半。醒來后覺得綿綿的很沒精神苦锨,自從到這個(gè)城市以來逼泣,似乎就很少感到神清氣爽,我想我需要開始...
    龍井與刀魚閱讀 112評(píng)論 0 0
  • QQ群作為社群組建的重要一環(huán),把QQ群運(yùn)營好使之成為社群運(yùn)營中一個(gè)強(qiáng)有力幫手尤為重要秃励。 微信公眾號(hào)運(yùn)營是經(jīng)理運(yùn)營的...
    社群經(jīng)理閱讀 511評(píng)論 0 2
  • 小時(shí)候經(jīng)常到河堤邊玩氏仗。昨天去河堤散步,因?yàn)闆]有開水閘的緣故夺鲜,橋的一邊河水滿滿的皆尔,另一邊則是綠草油油。牛羊吃草的地方...
    稻子未熟閱讀 176評(píng)論 0 3
  • 作為前端開發(fā)者避免不了根據(jù)后臺(tái)數(shù)據(jù)的返回谣旁,組裝html床佳,渲染頁面。舉個(gè)栗子 有時(shí)候還要給標(biāo)簽加一些屬性榄审,寫起來很不...
    Funwt閱讀 396評(píng)論 0 1