初识Go 语言,学习一门新语言好像也没那么难 | 青训营笔记

57 阅读2分钟

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

前言

本文章记录了初学Go部分内容,记录了今天所学的部分知识

1.初识Go语言

1.1 什么是GO语言?

GO又称为Golang是由Google的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。而Go语言的优点具有高性能、高并发,语法简单、学习曲线平缓,丰富的工具链,支持跨平台以及垃圾回收。

1.2 安装Go

Go的安装可以前往Go官网下载,对于在windows环境下推荐使用msi安装,可以实现安装即开箱免去配置的烦恼。

1.2 IDE的选择

所谓工欲善其事必先利其器,在写出整洁且有可维护性的代码的前提下是需要优秀的IDE来帮助我们的开发。市面上主流的IDE是VSCode和Jetbrains GoLang。对于这两种IDE可以根据个人的使用情况选择。VSCode需要一些打一些插件才能到达理想的开发环境,对初学者来说可能并不友好,对于初学者我更加推荐使用的是GoLang。

2.入门Go语言

2.1 开始输出第一行Hello world,代表我学会这门语言了!

package main

import (
   "fmt"
)

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

在Golang中package Main是入口文件如果package不为main在IDE运行不了。在Go中如果想编译二进制可以用go命令进行编译。

2.2 变量的使用

package main

import (
   "fmt"
   "math"
)

func main() {
   var a = "inital"
   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)
   fmt.Println(g)
   const s string = "constant"
   const h = 50000000000
   const i = 3e20 / h
   fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}

在GO中赋值主要有以上几种,需要注意的是const如果没有确定类型会根据上下文自动识别类型。

2.3 if else的使用

if 7%2 == 0 {
    fmt.Println("7 is even")
} else {
    fmt.Println("7 is odd")
}
if 8%4 == 0 {
    fmt,Println("8 is divisible by 4")
}
if num := 9; num < 0 {
    fmt,Println(num,"is negative")
} else if num < 10 {
    fmt.Println(num, "has 1 digit")
} else {
    fmt.Println(num, "has mutiple digits")
}

对于if在Go中不能填写到同一行,必须添加大括号。 2.3 循环的使用

package main

import (
   "fmt"
)

func main() {
   i := 1
   for {
      fmt.Println("loop")
      break
   }
   for j := 0; j < 9; j++ {
      fmt.Println(j)
   }
   for n := 0; n < 5; n++ {
      if n%2 == 0 {
         continue
      }
      fmt.Println(n)
   }
   for i <= 3 {
      fmt.Println(i)
      i = i + 1
   }
}

2.4Switch的使用

package main

import "fmt"

func main() {
   a := 2
   switch a {
   case 1:
      fmt.Println("one")
   case 2:
      fmt.Println("two")
   case 3:
      fmt.Println("three")
   case 4, 5:
      fmt.Println("four or five")
   default:
      fmt.Println("other")
   }
}

引用参考

参考的部分内容来源于以下课程或网页: