第一章 基础语法
第一节、golang程序构成
1. 关于golang
- 历史请自行查阅相关资料
- 环境配置请参考其他教程
- 本教程采用go version 1.7
2. 第一个go程序
package main
func main() {
println("Hello world!")
}
解读:
a). golang源码都是写在扩展名为.go的文件中的,并且保证文件是utf8编码。
b). 简单运行go单文件程序: go run test.go
c). 对于每份go代码都需要一个名字为main的包和名字为main的函数作为整个程序起点,这在很多编译型语言中是相同的。
d). func表明接下来是个函数,如func main表示函数名为main。
e). 左大括号‘{’必须和func写在同一行。
f). 每条语句后面不写分号‘;’。
g). println是golang内置函数之一,相同的还有print,它们之间的区别只有打印完后有没有自动换行。
h). print和println可打印golang内因类型数据,即对于结构体(struct)是不可打印的,但是结构体指针是可打印的。举例:
package main
type test struct {
a int
}
func main() {
print("abc", 123,"def")
println()
println("abc","def")
println(&test{a: 6789})
}
运行结果:
abc123def
abc 123 def
0xc42003bf30
结果0xc42003bf30在每台机器上执行不一定一样。
- 内置函数print的特点:在各个输出中间不自动插入空格;指针直接输出内存地址。
- println的特点: 在各个输出中间插入空格,在最后添加换行
现在,把test前面的&取址符号去掉:
package main
type test struct {
a int
}
func main() {
print("abc","def")
println()
println(test{a: 6789})
}
运行报错:
# command-line-arguments
./test.go:10: illegal types for operand: print
test
3. 建议:
4. 题外话
- 由于golang不允许导入未引用的包(后面讲到),所以可以用内置函数来调试程序。