Go 初识

Par @Martin dans le
Tags :

1. 语言特性

我觉得吧, 大概有个印象即可, 深入学习并使用一段时间, 然后和 C 及 Python 一比较, 自然就明白了.

GO 的特性

2. 语言结构

package main

import (
    "fmt"
)

func main() {
    /* 这是我的第一个简单的程序 */
    fmt.Println("Hello World!")
}


  • 第一行代码 package main 定义了包名, 必须在源文件中非注释的第一行指明这个文件属于哪个包. 如:package main.

包是Go语言里最基本的分发单位, 也是工程管理中依赖关系的体现, 要生成 Go 可执行程序, 必须建立一个名为 main 的包, 并且在该包中包含一个叫 main() 的函数(该函数一般是Go可执行程序的执行起点)

  • 下一行 import 告诉 Go 编译器这个程序需要使用 fmt 包(的函数, 或其他元素), fmt 包实现了格式化 IO(输入/输出)的函数.
  • 下一行 func main() 是程序开始执行的函数, 一般来说都是程序启动后第一个执行的函数(如果有 init() 函数则会先执行 init() 函数).

main() 函数没有返回值, 也没有参数, 通过 os.Args 来获取命令行参数.

  • 下一行 /*…*/ 是块注释, 注释方面的方法和 C 一致, // 为行注释, /**/ 为块注释.
  • 下一行 fmt.Println(…) 可以将字符串输出到控制台, 并在最后自动增加换行字符 \n, 使用 fmt.Print(“hello, world\n”) 可以得到相同的结果.
// 一个常规的函数定义包含以下部分:
func 函数名(参数列表)(返回值列表) {
    // 函数体
}


Go 支持多个返回值, 但并不是返回值列表里的所有返回值都必须赋值, 在函数返回时没有被明确赋值的返回值都会被设置为默认值.

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个__大写__字母开头, 如:Group1, 那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包), 这被称为导出(像面向对象语言中的 public);
标识符如果以__小写__字母开头, 则对包外是不可见的, 但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 private).