目录

  1. 1. 前言
  2. 2. 介绍
  3. 3. 关键字
  4. 4. 可见性
  5. 5. 声明
  6. 6. Go项目搭建和目录结构
  7. 7. 编译
  8. 8. 命令行命令

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

君のGolang本当上手

2024/3/27 Basic Golang
  |     |   总文章阅读量:

前言

It’s MyGO!!!!!(x

跟着pop神快速上手golang:https://www.yuque.com/boogipop/ot88z5/yhxil6q0md8vif0i#TS7cW

官方文档:https://go.p2hp.com/ref/spec#Iota


介绍

Go的核心思想:Less can be more 大道至简,小而蕴真

优点:

  1. 自带gc。
  2. 静态编译,编译好后,扔服务器直接运行。
  3. 简单的思想,没有继承,多态,类等。(非常好思想,使我 Java 旋转)
  4. 丰富的库和详细的开发文档。
  5. 语法层支持并发,和拥有同步并发的channel类型,使并发开发变得非常方便。
  6. 简洁的语法,提高开发效率,同时提高代码的阅读性和可维护性。
  7. 超级简单的交叉编译,仅需更改环境变量。

关键字

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  string  error

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

这里要注意的是iota,表示连续的非类型化整数常量,说白了就是自增(?

demo:

package main
 
import "fmt"
 
func main() {
	const (
		a = iota
		b = iota
		c = iota
	)
    //可以简写为以下格式
	fmt.Println(a, b, c) // 0 1 2
	const (
		a1 = iota
		b1 
		c1 
	)
	fmt.Println(a1, b1, c1) // 0 1 2
}

可见性

  1. 声明在函数内部,是函数的本地值,类似private
  2. 声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect
  3. 声明在函数外部且首字母大写是所有包可见的全局值,类似public

声明

四种声明:

  • var:声明变量
  • const:声明常量
  • type:声明类型
  • func:声明函数

Go项目搭建和目录结构

一个Go工程中主要包含以下三个目录:

src:源代码文件 
pkg:包文件  
bin:相关bin文件 

编译

go build abc_name.go

对单个文件进行编译

go install abc_name

执行这个命令时,系统会到工程根目录 GOPATH 的src目录中寻找abc_name目录,然后编译其下的go文件


命令行命令

$ go
Go is a tool for managing Go source code.

Usage:

    go command [arguments]

The commands are:

    build       compile packages and dependencies
    clean       remove object files
    doc         show documentation for package or symbol
    env         print Go environment information
    bug         start a bug report
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    generate    generate Go files by processing source
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

    c           calling between Go and C
    buildmode   description of build modes
    filetype    file types
    gopath      GOPATH environment variable
    environment environment variables
    importpath  import path syntax
    packages    description of package lists
    testflag    description of testing flags
    testfunc    description of testing functions

Use "go help [topic]" for more information about that topic.
###
go env用于打印Go语言的环境信息。

go run命令可以编译并运行命令源码文件。

go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。

go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包。

go install用于编译并安装指定的代码包及它们的依赖包。

go clean命令会删除掉执行其它命令时产生的一些文件和目录。

go doc命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。

go test命令用于对Go语言编写的程序进行测试。

go list命令的作用是列出指定的代码包的信息。

go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。

go vet是一个用于检查Go语言源码中静态错误的简单工具。

go tool pprof命令来交互式的访问概要文件的内容。