Go语言介绍
Go是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
其他语言相比的优势
- 简洁性:Go语言的语法简单,代码清晰,易于阅读和维护。
- 高效性:编译成机器码非常快,而且内存占用也很少。
- 并行处理:内置goroutines的概念,可以轻松编写并发程序。
- 强类型:静态类型检查,编译时能发现大多数类型错误。
- 编译速度快:Go语言的编译速度很快,可以快速迭代开发。
- 良好的标准库:Go语言的标准库非常丰富,提供了网络编程、文件I/O、数据库等功能。
- 自己的运行时:Go语言自带GC,无需手动管理内存。
- 编译成二进制可执行文件:生成的是独立的二进制文件,可以直接在没有运行时的系统上运行。
配置Go环境
go语言下载
- 配置环境首先要下载好go语言
- 其次,要在系统的属性中添加环境变量(win+e打开,右击此电脑,选择属性,搜索查看高级系统设置,点击环境变量,新建一条环境变量,变量名为GOROOT,变量值为安装go的目录,再新建一条环境变量,变量名为GOPATH变量值为变量值为:路径\Go_WorkSpace)
- 然后添加系统变量(找到Path并在其中添加三条路径数据,第一条为安装go的文件夹下的bin路径,其余两条分别为 %GOROOT%\bin 和 %GOPATH%)
- 编辑文件配置(在根路径新建
Go_WorkSpace 文件夹,并在Go_WorkSpace下建立binpkgsrc三个文件夹) - 使用时就可以在在桌面新建一个.txt文件写代码
- 如果感觉麻烦可以直接下载goland
编程入门
基本代码
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
- 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))
}
- 变量是通过var来进行命名或者用变量 + := + 内容
选择和循环
这边就放伪代码了
if 7%2 == 0 { // if +条件+{ }
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
for { // for{ break }
fmt.Println("loop")
break
}
for n := 0; n < 5; n++ { //同c++ for 少了()
if n%2 == 0 {
continue
}
fmt.Println(n)
}
for i <= 3 {
fmt.Println(i)
i = i + 1
}
switch a { //同c++ switch
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")
}
- 这里选择循环结构都和c++类似
数组
var a [5]int
b := [5]int{1, 2, 3, 4, 5}
var twoD [2][3]int //二维数组
- 数组的命名方式有些许不同前面跟变量命名一样但是后面要加上对应的类型int,char等,整体发现都和c++类似
切片和哈希表
s := make([]string, 4)
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println("get:", s[2]) // c
fmt.Println("len:", len(s)) // 3
s = append(s, "d")
s = append(s, "e", "f")
fmt.Println(s) // [a b c d e f]
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m) // map[one:1 two:2]
fmt.Println(len(m)) // 2
fmt.Println(m["one"]) // 1
fmt.Println(m["unknow"]) // 0
r, ok := m["unknow"]
fmt.Println(r, ok) // 0 false
delete(m, "one")
m2 := map[string]int{"one": 1, "two": 2}
var m3 = map[string]int{"one": 1, "two": 2}
- 这里多了哈希和切片的内容可以看代码理解
想学习更多就自行了解吧~