Go function(二)

Go 和其他語言很大的一個不同就是函數(shù)可以返回多個返回值友多。

Go 中聲明的變量必須被使用蹈胡,否則就會報錯通熄,因?yàn)镚o認(rèn)為沒有使用過的變量就不應(yīng)該聲明耙旦;
所以這里就會帶來一個問題喉恋,如果Go函數(shù)返回多個結(jié)果,而我們只關(guān)注其中的一個個母廷,那么另外一個不接受會報錯轻黑,接受不用也會報錯
這種情況我們可以使用一個叫做 blank identifier的變量 _

package main

import(
    "bufio"
    "fmt"
    "os"
)

func main(){
    fmt.Print("Enter a grade:")
    reader := bufio.NewReader(os.Stdin)
    input, _ := reader.ReadString('\n')
    fmt.Println(input)
}

Printf, Sprintf 可以用來format輸出,就像c語言那樣琴昆,需要注意的是一下兩種方式

  • %T 返回?cái)?shù)據(jù)所對應(yīng)的類型, int string etc
  • %t 表示bool型數(shù)據(jù)氓鄙,true false
  • %v 根據(jù)value類型,自動顯示成對應(yīng)類型數(shù)據(jù)的默認(rèn)輸出格式
  • %#v 以數(shù)據(jù)在Go語言中的表示形式顯示业舍,如制表符"\t"抖拦, 換行符 "\n"升酣, 等這種非顯示字符,在Go語言中以轉(zhuǎn)義字符的形式出現(xiàn)态罪,那么%#v就是"\t" "\n"
fmt.Printf("\\t show \"%v\", %#v", "\t", "\t")
the output:
\t show "   ", "\t"

Go 函數(shù)可以返回多個返回值噩茄,最常見的做法是返回一個正常值加一個error信息,我們可以通過error信息指定在函數(shù)調(diào)用過程中糾結(jié)發(fā)生了什么錯誤

func area(width float64, height float64) (int, error){
    if( width < 0){
      return 0, errors.New("width cannot be negative")  
  }
  if( height < 0){
      return 0, errors.New("height cannot be negative")  
  }
  return width*height, nil
}

Go函數(shù)傳遞參數(shù)有兩種方式复颈,值傳遞方式和引用傳遞方式(指針傳遞方式)绩聘, 上面的例子是值傳遞,即傳進(jìn)去的value是參數(shù)的一個copy, 函數(shù)對copy值的改變不會影響原來的值耗啦;
下面這個是引用傳遞凿菩, 引用傳遞方式傳遞的是值所在的地址,對它的改動將影響外面參數(shù)的值

func area(width *float64 , height *float64 ) (float64, error){
    if( *width < 0){
        return 0, errors.New("width cannot be negative")
    }
    if( *height < 0){
        return 0, errors.New("height cannot be negative")
    }
    return (*width)*(*height), nil
}

這里需要注意的是帜讲,不同類型的指針衅谷,類型也不同,因此變量也不能相互賦值似将。
如下代碼片段

value := 12
    value2 := 12.3
    fmt.Println(reflect.TypeOf(&value))
    fmt.Println(reflect.TypeOf(&value2))

&value 的類型是 *int
&value2 的類型是 *float64
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末获黔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子在验,更是在濱河造成了極大的恐慌肢执,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件译红,死亡現(xiàn)場離奇詭異,居然都是意外死亡兴溜,警方通過查閱死者的電腦和手機(jī)侦厚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拙徽,“玉大人刨沦,你說我怎么就攤上這事”炫拢” “怎么了想诅?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岛心。 經(jīng)常有香客問我来破,道長,這世上最難降的妖魔是什么忘古? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任徘禁,我火速辦了婚禮,結(jié)果婚禮上髓堪,老公的妹妹穿的比我還像新娘送朱。我一直安慰自己娘荡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布驶沼。 她就那樣靜靜地躺著炮沐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪回怜。 梳的紋絲不亂的頭發(fā)上大年,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音鹉戚,去河邊找鬼鲜戒。 笑死,一個胖子當(dāng)著我的面吹牛抹凳,可吹牛的內(nèi)容都是我干的遏餐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼赢底,長吁一口氣:“原來是場噩夢啊……” “哼失都!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起幸冻,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤粹庞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洽损,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庞溜,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年碑定,在試婚紗的時候發(fā)現(xiàn)自己被綠了流码。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡延刘,死狀恐怖漫试,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碘赖,我是刑警寧澤驾荣,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站普泡,受9級特大地震影響播掷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撼班,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一叮趴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧权烧,春花似錦眯亦、人聲如沸伤溉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乱顾。三九已至,卻和暖如春宫静,著一層夾襖步出監(jiān)牢的瞬間走净,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工孤里, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伏伯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓捌袜,卻偏偏與公主長得像说搅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虏等,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)弄唧,也就是一...
    悟名先生閱讀 4,150評論 0 13
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,813評論 0 38
  • 前言 人生苦多,快來 Kotlin 霍衫,快速學(xué)習(xí)Kotlin候引! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,215評論 9 118
  • 當(dāng)你看到這些文字的時候敦跌,他們可能正飛翔在一萬米的高空澄干。 但他們卻是真實(shí)存在著。所以故事的開始總是要開始的柠傍。 寧靜的...
    大風(fēng)哥在寫文章閱讀 895評論 1 2
  • 一只老鼠被逮著了 四肢反綁著吊在啤酒瓶上 一場極富創(chuàng)意的審判在進(jìn)行著 男審判員的判詞如雷貫耳 女陪審員兼旁聽者的笑...
    金垛愚叟閱讀 544評論 6 5