package main
import (
"fmt"
)
func main() {
fmt.Println("go")
}
经过前面24篇入门版博文,对go有了初步的认识,上面的代码已经熟能生巧了,既然还没放弃,接下来便努力深入学习一下吧。。。
每次打印都要带上fmt很麻烦,根据“懒人原则”,去掉fmt行不行?可以!
package main
import (
. "fmt"
)
func main() {
Println("go")
Printf("%d,%s", 123, "abc")
Println()
}
/usr/local/go/bin/go build [/Users/zhouwei/go/src]
成功: 进程退出代码 0.
/Users/zhouwei/go/src/src [/Users/zhouwei/go/src]
go
123,abc
成功: 进程退出代码 0.
打印结果如上。
接着分析:
进入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.
func Println(a ...interface{}) (n int, err error) {
return Fprintln(os.Stdout, a...)
}
分析:
interface{} 相当于java的object基类,意味Java中的面向接口编程,都可以这个类实现
....用法一样的
// Spaces are always added between operands and a newline is appended.
这句话说明,在操作对象和新行之间会多一个空格。
证明:
package main
import (
. "fmt"
)
func main() {
str := "go"
result, err := Println(str)
Println(result, err)
Println(len(str))
}
结果如下:
/usr/local/go/bin/go build [/Users/zhouwei/go/src]
成功: 进程退出代码 0.
/Users/zhouwei/go/src/src [/Users/zhouwei/go/src]
go
3 <nil>
2
成功: 进程退出代码 0.
可以看出“go”两个字符,打出来却是三个。