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)

直接粘贴过来,做个记录:

posted @ 2022-03-20 23:15  万国码aaa  阅读(175)  评论(0编辑  收藏  举报