Golang--fmt.Println()
阿新 • • 發佈:2022-03-21
Golang入門第一天
按照網上入門教程配置好開發環境後,我開始了HelloWorld。
遇到的第一個功能就是輸出,這裡的fmt.Println()fmt.Println("姓名\t年齡\t籍貫\t住址\nJone\t22\t河南\t哪裡啊啊啊啊\n")
習慣性再末尾新增\n,然後報錯如下:
#command-line-arguments
.\out.go:5:22: invalid character U+005C ''
.\out.go:5:23: syntax error: unexpected t, expecting comma or )
去了解了一下,知道,println會自動在字元間新增空格,並在句尾新增換行
其具體實現過程如下:(擷取的部分原始碼)
func (p *pp) doPrintln(a []interface{}) {
for argNum, arg := range a {
if argNum > 0 {
p.buf.writeByte(' ')
}
p.printArg(arg, 'v')
}
p.buf.writeByte('\n')
}
這個函式的思路很清晰。遍歷所有傳入的需要print的引數,在除了第一個引數以外的所有引數的前面加上一個空格,寫入buffer中。然後呼叫printArg函式,再將換行符寫入buffer中。(參考:https://studygolang.com/articles/21164)
不妨對比一下差別
fmt.Println("test", "hello", "word") // test hello word
fmt.Print("test", "hello", "word") // testhelloword%
###另外我剛好在網上看到了我正在疑惑的問題:在go中的單引號和雙引號有什麼區別呢?下面我們通過一個表格來對比一下在不同的語言中,單引號和雙引號的區別。(參考:https://studygolang.com/articles/21164)
直接貼上過來,做個記錄: