Golang中println和fmt.Println區(qū)別解析
Golang 中打印數(shù)據(jù)通常使用 fmt.Println() 方法,也可以使用內(nèi)置的 println() 方法。這兩個方法大家可能都使用過,它們的區(qū)別是什么呢?
println()
先看下 println() 方法的注釋:
// The println built-in function formats its arguments in an // implementation-specific way and writes the result to standard error. // Spaces are always added between arguments and a newline is appended. // Println is useful for bootstrapping and debugging; it is not guaranteed // to stay in the language.
可以看出 println() 是內(nèi)置方法,屬于builtin 包(builtin包是Golang預(yù)聲明的包,不需要 import 即可使用),可以傳入多個Type類型(pointer、channel、func、 interface、map和slice 類型)參數(shù),將結(jié)果寫入標(biāo)準(zhǔn)錯誤。主要用于調(diào)試,不保證在未來的 Golang 版本中還保留此方法。
fmt.println()
再看下 fmt.println() 的注釋:
// Println formats using the default formats for its operands and writes to standard output. // Spaces are always added between operands and a newline is appended. // It returns the number of bytes written and any write error encountered
可以看出 fmt.println() 屬于 fmt 包,可以傳入多個 interface 類型的參數(shù),將結(jié)果寫入標(biāo)準(zhǔn)輸出。返回兩個參數(shù)——寫入的字節(jié)數(shù)和error。
println() 和 fmt.println() 的區(qū)別
通過上面的注釋和說明可以看出如下區(qū)別:
所屬的包不同。println() 屬于 builtin 包,fmt.println() 屬于 fmt 包。
輸出方式不同。println() 輸出到標(biāo)準(zhǔn)錯誤(STDERR),fmt.println() 輸出到標(biāo)出輸出(STDOUT)。
返回值不同。println()無返回值,fmt.println()有兩個返回值——寫入的字節(jié)數(shù)和error。
println() 輸出結(jié)果可能與預(yù)期結(jié)果順序不一致,而 fmt.Println() 輸出結(jié)果與預(yù)期結(jié)果完全一致(這個特性是由標(biāo)準(zhǔn)錯誤和標(biāo)準(zhǔn)輸出的特性決定的)。
println() 不能傳入數(shù)組和結(jié)構(gòu)體類型的參數(shù)。
對于組合類型的參數(shù),println() 輸出的結(jié)果是參數(shù)的地址,而 fmt.Println() 輸出的結(jié)果是字面量。
到此這篇關(guān)于Golang中println和fmt.Println有什么區(qū)別嗎?的文章就介紹到這了,更多相關(guān)Golang println和fmt.Println區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang使用bcrypt包對密碼進(jìn)行加密的方法實(shí)現(xiàn)
本文主要介紹了golang使用bcrypt包對密碼進(jìn)行加密的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
詳解GO語言中[]byte與string的兩種轉(zhuǎn)換方式和底層實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了GO語言中[]byte與string的兩種轉(zhuǎn)換方式和底層實(shí)現(xiàn)的相關(guān)知識,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下2024-03-03
Bililive-go 實(shí)現(xiàn)直播自動監(jiān)控錄制功能
最近有直播錄制的需求,但是自己手動錄制太麻煩繁瑣,于是用了開源項(xiàng)目Bililive-go進(jìn)行全自動監(jiān)控錄制,對Bililive-go 直播自動監(jiān)控錄制實(shí)現(xiàn)思路感興趣的朋友,一起看看吧2024-03-03
使用Go語言實(shí)現(xiàn)跨域資源共享(CORS)設(shè)置
在Web開發(fā)中,跨域資源共享(CORS)是一種重要的安全機(jī)制,它允許許多資源在一個網(wǎng)頁上被另一個來源的網(wǎng)頁所訪問,然而,出于安全考慮,瀏覽器默認(rèn)禁止這種跨域訪問,為了解決這個問題,我們可以使用Go語言來設(shè)置CORS,需要的朋友可以參考下2024-06-06
Go微服務(wù)網(wǎng)關(guān)的實(shí)現(xiàn)
本文主要介紹了Go微服務(wù)網(wǎng)關(guān)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

