零基础学习Go的Day01| 青训营笔记

100 阅读2分钟

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

Go-Day01

1.观看走进Go语言基础语言的课程

2.了解Go语言的特点,一共分为八点

  • 拥有和C/C++/Java一样的高性能、内嵌了高并发库
  • 语法简单易懂类似于C语言但是在此基础上进行了大幅度的简化去掉了不需要的表达式括号,并且循环也只有for循环一种,他可以用来循环遍历任意数据结构、学习曲线平缓,只需要一周时间就能真正上手Go语言进行开发
  • Go语言和Python一样拥有丰富功能完善质量可靠的标注库就可以进行基础的开发
  • 完善的工具链,体现在编译、代码格式化、错误检查、帮助文档、代码补充提示、包管理、单元测试、性能测试、性能优化工具类
  • 静态链接,只需要拷贝编译后的文件,不需要加任何环境就可以运行,在线上部署可以把容器的体积控制的非常小
  • 快速编译
  • 跨平台,可以在windows、Linux、macos等平台上运行,也能够用来安卓软件
  • 垃圾回收,可以自动完成内存的垃圾回收跟Java一样,在编写代码时不需要考虑内存的分配与释放

3.Go语言的应用场景

在云计算、微服务、大数据、区块链、物联网等方面蓬勃发展,在云技术和微服务方面已经有非常高的市场占有率,像Docker等常见的云原生组件都是采用Go开发的

4.字节跳动全面使用Go语言的原因

  • 最初使用的Python,由于性能问题换成了Go
  • C++不太适合在线Web业务
  • 早期团队非Java背景
  • 性能比较好
  • 部署简单、学习成本低
  • 内部RPC和HTTP框架的推广

5.Go入门

  • 配置Go的开发环境,前往Go官网安装Go语言,完成Go的集成开发工具GoLand的安装
  • Go的第一个案例HelloWorld
package main

import (
   "fmt"
)

func main() {
   //使用fmt输出hello world
   fmt.Println("hello world")
}
  • Go中定义变量,使用var进行定义变量,const用于定义常量,go支持类型自动推断,:=定义变量的简洁写法
package main

import (
   "fmt"
   "math"
)

func main() {

   var a = "initial"

   var b, c int = 1, 2

   var d = true

   var e float64

   f := float32(e)

   g := a + "foo"
   fmt.Println(a, b, c, d, e, f) // initial 1 2 true 0 0
   fmt.Println(g)                // initialapple

   const s string = "constant"
   const h = 500000000
   const i = 3e20 / h
   fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}