博客
关于我
【Go学习】Go(Golang)知识点总结
阅读量:236 次
发布时间:2019-03-01

本文共 2221 字,大约阅读时间需要 7 分钟。

Go语言入门介绍

环境搭建

1. 标准包安装

检查安装成功:在终端输入 go,出现 go 命令列表。

2. 配置环境变量

  • 打开终端,执行 cd ~
  • 查看是否有 .bash_profile 文件:ls -a
    • 如果有,跳过此步骤。
    • 如果没有,执行以下命令创建并编辑文件:
      touch .bash_profileopen -e .bash_profile
  • .bash_profile 中自定义 GOPATHGOBIN
    export GOPATH=/Users/lwh/program/Goexport GOBIN=$GOPATH/binexport PATH=$PATH:$GOBIN
  • 重新加载环境变量:source .bash_profile
  • 3. 安装集成开发工具

    推荐使用 VS Code:

  • 安装 VS Code。
  • 运行 Go 插件:go install github.com/golang/vscode.
  • 配置 VS Code:
    • 打开设置,搜索 Go,启用相关插件。
  • 4. 工作空间

    创建 GOPATH 目录,并在其下创建三个子目录:

    • bin:存放编译后的可执行文件。
    • pkg:存放编译后的包文件。
    • src:存放项目源码。

    基本语法

    1. 常量、变量与命名规则

    1. 可见性规则

    • 函数名首字母小写:表示私有函数。
    • 函数名首字母大写:表示公共函数。

    2. 常量

    • 常量值在运行时不可改变。
    • 内置常量:true, false, iota
    • 定义方式:
      const PI float32 = 3.1415926const a, b, c = 1, "Go", 'c'

    3. 变量

    • 变量值在运行时可改变。
    • 变量名命名规则:
      • 以字母或下划线开头。
      • 由字母、数字、下划线组成。
      • 避免使用关键字。
      • 大小写区分。

    4. 标识符命名规则

    • 变量名首字母小写表示私有变量。
    • 常量名全大写表示常量。

    2. 数据类型

    1. 基本数据类型

    • bool:布尔型。
    • int, uint:整数型。
    • byte, uint8:字节型(ASCII字符)。
    • rune:Unicode字符型(等价于 int32)。
    • float32, float64:浮点数型。
    • complex64, complex128:复数型。

    2. 值类型

    包括:bool, int, float, byte, string, 数组, 结构体, 错误类型

    3. 引用类型

    包括:指针, 切片, 字典, 通道, 接口, 函数

    3. 字符串

    • 字符串内容不可变。
    • 字符串操作:
      str := "hello"fmt.Printf("str[%d] = %v\n", 2, str[2]) // 输出 'l'fmt.Println(len(str)) // 5

    4. 数组

    • 定义方式:
      var arr1 [5] int
    • 初始化方式:
      var arr2 = [2] int {1, 2}

    5. 切片

    • 切片是引用类型,支持动态数组。
    • 定义方式:
      slice1 := make([]int, 4, 10)
    • 常用操作:
      slice1 = array1slice1 = array1[2:5]

    6. 字典

    • 哈希表,键值对存储。
    • 定义方式:
      map1 := make(map[string]int)

    7. 通道

    • 用于消息通信。
    • 声明方式:
      ch := make(chan int)
    • 操作方式:
      ch <- 1value := <-ch

    运算符与表达式

    1. 位运算符

    • ^:取反。
    • &:按位与。
    • |:按位或。
    • <<, >>:位移。

    2. 通道运算符

    • <-:发送和接收数据。

    输入输出

    1. 标准输出

    • fmt.Printffmt.Println
    • 格式化字符串:
      fmt.Printf("str[%d] = %v\n", i, str[i])

    2. 标准输入

    • fmt.Scanfmt.Scanlnfmt.Scanf

    并发程序设计

    1. Goroutine

    • Go语言内置的轻量级线程。
    • 创建方式:
      go func() {  // goroutine代码}()

    2. 通道

    • 用于消息传递。
    • 单向通道:
      ch := make(<-int)
    • 异步通道:
      ch := make(chan int, 1024)

    3. Select语句

    • 多路复用:
      select {  case <-ch1:  case <-ch2:  default:}

    4. 超时机制

    • 使用 time.Timeout 实现。

    结构体

    1. 定义

    type date struct {  year int}

    2. 方法

    func (r *student) getFee() int {  return 10 + 100}

    接口

    1. 定义

    type Speaker interface {  sayHi()}

    2. 接口组合

    type SpeakerLearner interface {  Speaker  study()}

    1. fmt

    • 格式化输入输出。

    2. math

    • 数学函数。

    3. strings

    • 字符串操作。

    4. strconv

    • 数据类型转换。

    5. bytes

    • 字节切片操作。

    6. bufio

    • 缓冲输入输出。

    总结

    Go语言是一种强大且灵活的编程语言,适合处理并发和网络编程任务。通过以上内容,可以快速上手 Go语言并进行开发。

    转载地址:http://ouqt.baihongyu.com/

    你可能感兴趣的文章
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 或 scipy 有哪些可能的计算可以返回 NaN?
    查看>>
    numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
    查看>>
    numpy 数组与矩阵的乘法理解
    查看>>
    NumPy 数组拼接方法-ChatGPT4o作答
    查看>>
    numpy 用法
    查看>>
    Numpy 科学计算库详解
    查看>>
    Numpy.fft.fft和numpy.fft.fftfreq有什么不同
    查看>>
    numpy.linalg.norm(求范数)
    查看>>
    Numpy.ndarray对象不可调用
    查看>>
    Numpy.VisibleDeproationWarning:从不整齐的嵌套序列创建ndarray
    查看>>
    Numpy:按多个条件过滤行?
    查看>>
    Numpy:条件总和
    查看>>
    numpy、cv2等操作图片基本操作
    查看>>
    numpy中的argsort的用法
    查看>>
    NumPy中的精度:比较数字时的问题
    查看>>
    numpy判断对应位置是否相等,all、any的使用
    查看>>
    Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    numpy学习笔记3-array切片
    查看>>