Go 语言上手-基础语言

175 阅读3分钟
  • Go语言简介
  • 开发环境
  • 基础语法
  • 标准库

1.什么是Go语言

Go语言是谷歌出品的一门计算机编程语言,Go语言具有以下特点:

  1. 高性能,高并发
  2. 语法简单,学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

2.开发环境

   https://go.dev/    Go语言官方网站
   https://studygolang.com/dl    Go语言国内镜像网站
   https://goproxy.cn/  下载第三方包
  • 集成开发环境:Goland、Visual Studio Code
  • 基于云的开发环境:hi-hi.cn/gitpod

3.基础语法

  1. 打印hello world

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println("hello world")
    }
    

    ((TZ8N%RXAYDLMRMN)[]6.png

  2. 声明变量

  • Go语言是一种强类型语言,每个变量都有自己的类型。常用的类型有:字符串,整形,浮点型,bool型。
  • Go语言中字符串是内置类型,可以通过'+'进行拼接,也可以通过用'='比较两个字符串。
  • Go语言中大部分运算符优先级和C语言或者C++语言一致声明变量有两种方式: var 变量名 = "value" //此方法可以自动推导变量类型 var 变量名 变量类型 = "value" //显示变量名形式 变量名 := 变量类型(value) const 变量名 类型 = "value" //声明常量,可自动确定类型
  1. if else
  • 类似于C/C++if else,与之不同的是if后面没有括号。

image.png 4. 循环

  • Go中只存在for循环
  • 可以用continue继续循环,break跳出循环
  1. switch
  • 类似于C/C++,但是相比之下Go语言中switch后不存在括号,也不需要break语句来结束case

image.png

  • Go语言中switch可以进行比对任意结构类型,或者取代if else语句(不在switch后面加变量,在每一个case里面写条件分支)

    image.png

  1. 数组

image.png

  1. 切片
  • 切片不同于数组,他是一个可变长度的数组,可以进行任意时刻更改长度。
  • 可以通过make创建切片,创建的切片可以像一个数组进行使用。
  • 切片可以用append增加元素,并且赋值回去。(因为在Go语言中,slice的原理是存储了一个长度与一个容量还有一个指向数组的指针,在执行append操作时,如果容量不够,会进行自动扩容并且返回一个新的slice,必须要返回赋值)
  • 可以用copy在两个切片中,进行拷贝数值。
  • slice可以进行切片取值

image.png

  1. map
  • 可以用make创建一个空map: make(map[string]int)
  • 用delete可以删除map中key-value
  • 可以通过赋值时加ok来进行判断是否存在该ket-value

image.png

  1. range
  • 对于slice和map遍历可以采用range
  • range遍历可以更加的快速、简洁 image.png
  1. 函数
  • Go语言中函数的参数的变量类型是后置的,返回值都会传回两个,第二个返回值用来判断是否存在
  1. 指针
  • Go语言中指针对比C/C++使用方法十分有限,主要用途是对于常用的参数进行修改

image.png

  1. 结构体
  • 带类型的字段的集合
  • 下面为结构体举例 image.png
  1. 结构体方法
  • 类似于类成员函数

image.png

  1. 字符串操作
Contains(str,"子串"); //判断一个字符串是否包含另一个字符串
Count(str,"子串");  //字符串计数
Index(str,"目标字符串");  //查找某个字符串的位置
Join(str1,str2);  //连接多个字符串
Repeat(str,num);  //重复多个字符串
len(str);  //获取字符串长度

15. 字符串格式化

image.png

  1. JSON处理

image.png

  1. 时间处理

image.png

  1. 数字解析
  • 在strconv(StringConvert)包下
  • 可以用ParseFloat和ParseInt解析字符串
  • 可以用Atoi将字符串转为数字,反之用Itoa
  1. 进程信息
  • 可以用os.Args获取进程执行过程中一些命令行参数
  • 可以用os.Getenv和os.Setenv获取写入环境变量
  • 可以用exec.Command快速启动子进程,获取其输入输出