简介

  • Google开源
  • 编译型语言
  • 21世纪的c语言

特点

  • 语法简洁
  • 开发效率高
  • 执行性能好
  • 天生支持并发

项目结构

  • 个人开发
  • 目前流行的项目架构
  • 企业开发

编译


package main //会被编译成可执行文件

import "fmt" //倒入模块

func main() { //main主方法
fmt.Print("Hello,Golang")
}
  • Tips⚠️ :
  1. 在项目目录下使用terminal进行go build进行构建就会生成win/.exe,mac/linux/.sh
  2. 在其他的路径下使用go build,需要在后面加上项目的路径(GOPATH/src后开始写起)
  3. 通过使用-o 指定生成的可执行文件名字
  • ​go run​​ :像执行脚本文件一样执行Go代码
  • ​go install​​: go build→生成可执行文件(.exe/.sh)→copy生成的可执行文件到根目录下的bin
  • 语句不能放在函数之外的地方,函数之外的地方只能存在声明变量,导包之类的

跨平台编译

  • 交叉编译,GO支持跨平台编译
    只需要指定目标系统的平台和处理器架构即可(windows):
SET CGO_ENABLE=0  //禁用CGO
SET GOOS=linux //目标平台是linux
SET GOARCH=amd64 //目标平台的架构是amd64
go build

Mac下编译Linux和Windows平台64位可执行程序:

CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build

Linux下比编译Mac和Windows平台64位:

CGO_ENABLE=0 GOOS=dorwin GOARCH=amd64 go build
CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build

标识符

  • 和Java的声明一样,字母、数字、下划线

关键字

  • Go语言中有25个关键字
break      default     func       interface        select 
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
  • 37个保留字
Constants:   true   false    iota    nil

Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune error

Functions: make len cap new append copy close delete
complex real imag
panic recover

变量

  • 声明变量var开头,无需分号结尾,静态类型的(一旦声明类型持续整个时段),单个声明变量
var 变量名 变量类型
  • 批量声明变量
var(
name string ="张三"
age int8 = 66
sex string = "男"
)
  • 使用​​fmt.Prin​​ 打印完指定内容之后输出时末尾自带换行,支持​​%s​​ 等作为占位符使用
  • Tips⚠️ :当声明 的 是全局变量的时候不使用变量没关系,当在函数体之内声明局部变量的时候且不使用编译器是过不去的,当package不是main的时候声明的全局变量,可以在当前代码文件之外的代码文件使用。
  • 类型推导
var s1 = "ok"
  • ​:=​​简单变量声明和👆差不多,但是只能 函数里面使用,不能作为全局声明使用
s1 := "ok"
  • 匿名变量
  • 使用​​_​​ 在某个函数多个返回值的时候,可以用其忽略不想要的参数,不占命名空间、不会分配内存、不存在重复声明

常量

  • 单个常量定义
    ​​​const pi=3.14​
  • 批量常量定义,n1、n2、n3都是100,忽略值表示和上一行一样
const(
n1=100
n2
n3
)