走进Go语言基础语言|青训营笔记

58 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的的第1天

本节课内容如下

1 简介

1-1什么是go语言

  1. 高性能、高并发;
  2. 语法简单、学习周期短;
  3. 丰富的标准库;
  4. 完整的工具链保证完成;
  5. 静态链接;
  6. 快速编译,静态语言中几乎最快的;
  7. 跨平台(树莓派、路由器);
  8. 垃圾回收

1-2 字节跳动为什么全面拥抱go语言

  1. Python性能不佳
  2. C++不太适合在线web服务
  3. 早期团队非JAVA背景
  4. 内部RPC和HTTP框架的推广

1-3 GO语言应用领域

  1. 服务器编程
  2. 开发云平台
  3. 区块链(加密算法方面有优势)
  4. 分布式系统
  5. 网络编程

2 入门

2-1 开发环境

可以选择golang或者vscode

我选择了vscode(下载go插件)

powershell中需配置:

$env:GO111MODULE="on"
$env:GOPROXY="http://goproxy.cn"

2-2基础语法-Hello World

   pacage main//这个文件属于main包的一部分,程序的入口文件
   
   import "fmt"//导入format包,输入输出字符串,格式化字符串
​
   func main(){
       fmt.Println("hello world")
   }

go run 运行go build 创建exe

2-3基础语法

  1. 变量:

    函数内部初始化可以用短变量声明:=

    如:

    s :=10
    

    常规格式: var name numType=value

    如:

    var s int =10
    
  2. if else:

    if后面没有括号if后面只能直接接大括号

    else必须和大括号写在同一行

  3. 循环

    没有dowhile和while,只有for循环

    func f1() {
            for i := 1; i <= 10; i++ {
                    fmt.Printf("i: %v\n", i)
            }
    }
    

    可以把初始化变量写到for循环外面

    func f2() {
            
            i := 1
            for ; i <= 10; i++ {
                    fmt.Printf("i: %v\n", i)
            }
    }
    

    可以只有一个判断条件

    func f3() {
            i := 1
            for i <= 10 {
                    fmt.Printf("i: %v\n", i)
                    i++
            }
    }
    

    以下情况类似while循环 永真循环:for后面啥也不加

    func f4() {
            i := 1
            for {
                    fmt.Printf("i: %v\n", i)
                    i++
            }
    }
    
    
  4. switch

    不用加break

  5. 数组

    具有编号且长度固定的元素序列

  6. map

    字典。

  7. range

    第一个值返回下标,第二个值返回值

  8. 指针

    主要用途是对传入的值进行修改