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

    你可能感兴趣的文章
    openlayers 入门教程(十四):第三方插件
    查看>>
    openlayers 入门教程(四):layers 篇
    查看>>
    OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
    查看>>
    Openlayers下载与加载geoserver的wms服务显示地图
    查看>>
    Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
    查看>>
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>
    Openlayers中使用Overlay实现点击要素弹窗并且弹窗随之移动
    查看>>
    Vmware系列&虚拟机系列【仅供参考】:使用vCenter Auto Deploy制作ESXI系统封装(适合高版本vSphere)
    查看>>
    Openlayers中加载GeoJson文件显示地图
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
    查看>>
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中实现地图上添加一条红色直线
    查看>>
    Openlayers中将某个feature置于最上层
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers中设置定时绘制和清理直线图层
    查看>>
    Openlayers入门教程 --- 万字长篇
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>