1. 程式人生 > 其它 >Golang--fmt.Println()

Golang--fmt.Println()

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)

直接貼上過來,做個記錄: