# 简介

# Go

Go 的诞生是 2007 年, 当时是为了解决 Google 内部所发现的一些问题及挑战:

  1. 多核硬件架构
  2. 超大规模分布式计算集群
  3. web 模式导致的前所未有的开发规模和更新速度

# Go 的创始人

  1. Rob Pike: Unix 的早起开发者, UTF-8 创始人
  2. Ken Thompson: Unix 的创始人, C 语言创始人, 1983 年图灵奖
  3. Robert Griesemer: Google V8 JS 引擎开发者

# Go 的特点

  1. 简单: Go 的关键字只有25个, C 语言有 37 个关键字, C++有 84 个关键字
  2. 高效: Go 不仅提供了垃圾回收机制, 也提供了直接的指针访问
  3. 生产力: Go 支持复合, 不支持继承
  4. 云计算语言: docker kubernetes
  5. 区块链语言: ethereum Hyperledger

# 准备开始 Go 冒险之旅~

# 下载安装 Go 语言

# 配置国内镜像

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

# 创建学习文件夹

mkdir go-learning

cd go-learning

touch helloword.go

# 编写 helloword.go 文件

// 基本程序结构
package main // 包, 表名代码所在的模块

import "fmt" // 引入代码依赖

// 功能实现
func main() {
  fmt.Println("HelloWorld")
}

说明

应用程序入口:

  • 必须是 main 包: package main;

  • 必须是 main 的方法: func main();

  • 文件名不一定是 main.go;

  • Go 中 main 函数不支持任何返回值

  • 通过 os.Exit 来返回状态

  • main 函数不支持传入参数

  • 在程序中直接通过 os.Args 获取命令行参数

func main() {
  if len(os.Args)>1 {
    fmt.Println("HelloWorld", os.Args[1]);
  }
}

// 不支持mian函数传入参数
// func main(arg []string)

# 执行文件

# 第一种
go run helloworld.go

# 第二种
go build helloworld.go

./helloworld.go