博客
关于我
【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/

    你可能感兴趣的文章
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    nginx+php的搭建
    查看>>
    nginx+tomcat+memcached
    查看>>
    nginx+Tomcat性能监控
    查看>>
    nginx+uwsgi+django
    查看>>
    Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
    查看>>
    nginx-vts + prometheus 监控nginx
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    Nginx之二:nginx.conf简单配置(参数详解)
    查看>>
    Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
    查看>>
    Nginx代理初探
    查看>>
    nginx代理地图服务--离线部署地图服务(地图数据篇.4)
    查看>>
    Nginx代理外网映射
    查看>>
    Nginx代理模式下 log-format 获取客户端真实IP
    查看>>
    Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
    查看>>
    Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
    查看>>
    Nginx反向代理与正向代理配置
    查看>>
    Nginx反向代理是什么意思?如何配置Nginx反向代理?
    查看>>
    nginx反向代理解决跨域问题,使本地调试更方便
    查看>>
    nginx启动脚本
    查看>>