第一个 go 程序 --HelloWorld.go
源码 :
- package main
- import "fmt" // import ("fmt")
- func main() {
- fmt.Println("Hello World!")
- }
执行:
在命令行切换到程序所在路径下, go run HelloWorld.go. 或者在 HelloWorld.go 程序所在路径下, 先执行 go build HelloWorld.go, 生成一个可执行文件 HelloWorld. 然后直接在命令行输入 HelloWorld 即可执行! 再或者使用 JetBrain 的软件 Goland, 此软件同样可以使用教育邮箱注册.
import "fmt" /* 导包, fmt 包实现了格式化 I/O(输入 / 输出) 的函数 */
如果这样导包: import (. "fmt"), 则 fmt.Println() 可以略写成 Println() , 即 Print + 换行.
格式化输出: fmt.Printf("面积为 : %d", area)
别名操作: 可以把包名换成一个容易记忆的名字, 如: import ( f "fmt"), 然后可以 f.Print(), 且只能使用 f 而不能再用 fmt.
_ 操作 -- 这个操作是一个让很多人头疼的一个操作符, 请看下面这个 import
- import (
- "database/sql"
- _ "github.com/ziutek/mymysql/godrv"
- )
_操作其实是引入该包, 而不直接使用包里面的函数, 实际调用了该包里面的 init 函数.
_ 标识符也被用来抛弃值: 如在: _, b = 5, 6 中, 5 被抛弃了. _ 实际上是一个只写变量, 不能得到它的值.
因为 Go 语言中必须使用所有被声明的变量, 但有时你并不需要使用从一个函数得到的所有返回值.
main 与 init 这两个函数在定义时不能有任何的参数和返回值.
每个 package 中的 init 函数都是可选的, 但 package 中必须包含一个 main 函数. 虽然一个 package 里面可以写任意多个 init 函数, 但推荐只用一个.
Go 程序会自动调用 init() 和 main(). 先调用 init 函数, 再调用 main 函数.
运行程序, 必须要运行存在 main 函数的 go 文件.
初始化顺序:
程序的初始化和执行都起始于 main 包. 如果 main 包还导入了其它的包, 那么就会在编译时将它们依次导入. 有时一个包会被多个包同时导入, 那么它只会被导入一次 (例如很多包可能都会用到 fmt 包, 但它只会被导入一次). 当一个包被导入时, 如果该包还导入了其它的包, 那么会先将其它包导入进来, 然后再对这些包中的包级常量和变量进行初始化, 接着执行 init 函数 (如果有的话), 依次类推. 等所有被导入的包都加载完毕了, 就会开始对 main 包中的包级常量和变量进行初始化, 然后执行 main 包中的 init 函数 (如果有的话), 最后执行 main 函数.
编程规范
注释: 单行注释用 //, 多行注释 (块注释) 用 /* */
标识符: 包括常量, 变量, 函数名等, 如果标识符以大写字母开头, 则其对外部包是可见的, 可以被外部包的代码使用 (相当于使用 public 进行修饰); 若以小写字母开头, 则只对内部包可见, 对外部包不可见 (相当于使用 private 修饰).
语句结尾: Go 语言默认一行就是一条代码语句, 不需要分号结尾. 但将多条语句写在同一行时, 它们必须使用 ; 隔开.
来源: http://www.bubuko.com/infodetail-2996614.html