Go教程

Golang基础

本文主要是介绍Golang基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Golang基础

1. 主要特征

1.1 特征

  1. 垃圾回收
  2. 丰富的内置类型
  3. 多返回值
  4. 匿名函数
  5. 闭包
  6. OOP
  7. 并发编程
  8. 反射
  9. 错误处理

1.2 命名规则

  • 首字母可以是不能是数组
  • 可以由Unicode字符、下划线、数字构成
  • 长度不限
  • 严格固定首字母大小写,有不同含义

1.3 Go项目

一个Golang工程中主要包含三个目录:

在GOPATH目录下

  • bin:编译后的二进制文件
  • src:源代码文件
  • pkg:包文件

2. 丰富的内置类型

  • 2.1 普通类型:

    • bool
    • int(32 or 64), int8, int16, int32, int64
    • uint(32 or 64), uint8(byte), uint16, uint32, uint64
    • float32, float64
    • string
    • complex64, complex128
    • array

    官方文档:int is a signed integer type that is at least 32 bits in size. It is a distinct type, however, and not an alias for, say, int32.

    int整形最少占32位,int和int32是两码事


    complex:复数类型

    可以存储两个数值:real、image

    实数部分和虚数部分都是[float32]类型

    可以通过real(complex)拿到real值,同理可以通过imag(complex)拿到image值

    例如:

    func main() {
       c := complex(11.11, 22.22)
       fmt.Printf("%f\n%f", real(c), imag(c))
    }
    

    输出为:

    11.110000
    22.220000


    array为固定长度


2.2 引用类型

  • slice
  • map
  • chan

2.3 内置接口error

// The error built-in interface type is the conventional interface for
// representing an error condition, with the nil value representing no error.
// 表示错误条件,nil值表示没有错误。
type error interface {
    Error() string
}

只要实现了这个方法,就是实现了error

可以自定义error

例如:

// 定义一个类
type Demo struct {
}

// 这个类实现Error方法,也就是实现error接口
func (d *Demo) Error() string {
   return "自定义错误"
}

func main() {

   err := testErr()
   fmt.Println(err)
}

// 模拟一个错误
func testErr() error {
   return &Demo{}
}

此时打印:自定义错误


3. 函数

3.1 init函数

  • init函数用于包(package)的初始化,该函数是go语言的一个重要特性
  • 每个包都可以有多个init()
  • 包里每个源文件也可以有多个init()
  • 多个init()执行顺序没有明确的规定
  • 不同包的init()按照包导入的依赖关系决定执行顺序
  • init()不能被其他函数调用
  • 在main()执行前自动被调用

3.2 main函数

Go语言程序的默认入口函数(主函数)


  • 两个函数在定义时不能有任何的参数和返回值

  • Go程序自动调用

  • init函数可以应用于任意包中,且可以重复定义多个

  • main函数只能用于main包中,且只能定义一个


未完

这篇关于Golang基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!