走进Go语言基础语法 | 青训营
一. GO语言的特性
| 特性 | 解释 |
|---|---|
| 高性能、高并发 | 无需使用复杂的第三方库 |
| 语法简单、学习曲线平缓 | 类似于c语言,仅有FOR一种循环 |
| 丰富的标准库 | 无需使用复杂的第三方库、稳定性、兼容性 |
| 完善的工具链 | 编译、代码格式化、文档、包管理等 |
| 静态链接 | 拷贝编译之后的文件 |
| 快速编译 | 几乎最快 |
| 跨平台 | linux、windows、macOS等 |
| 垃圾回收 | 与java类似 |
二. Golang+Goland安装配置
1.安装Golang
以Golang 1.17.12为例:进入All releases - The Go Programming Language
点击蓝色字体,进行安装,我安装的是go.1.17.12.windows-amd64.msi x86-64版本
2.配置环境
(1)打开go/bin目录下的cmd,输入go version,查看版本,如果出现1.17.12则表示安装成功
(2)若要使其全局有效,需配置环境变量
- 打开高级系统设置
- 点击系统变量->新建
- 输入GOROOT+go所在目录(D:、Golang_1.17\go),确定
- 点击PATH->编辑
- 新建:%GOROOT%\bin,确定
- 点击系统变量->新建
- GOPATH->以后go项目存放位置,确定
- 打开cmd
$ go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,direct
至此,环境变量配置完毕。
3.安装goland,这里安装2020.3版本
(1)一路向下,注意选好存放位置
(2)安装之后,即可使用啦!
三、基础语法
1.go语言的基础结构是这样:
package main
import "fmt"
func main(){
fmt.Print("hello,world!")
}
可在terminal输入:
go biuld hello.go 创建.exe文件 然后输入.\hello.go
也可以直接输入go run hello.go来实现运行代码。
2.变量
//全局变量
var a, b, c = 1, 2, 3
var fl float32
var (
family_name = "li"
name = "yitong"
age = 20
)
var sub byte = 'a'
var deri int = '北'
var con bool = true
var address string = "lyt love xuyu"
当定义常量时,可以使用const A=100,这是他会自动确定类型。
3.if-else
同c/c++类似,如下:
if true {
defer fmt.Print("1")
} else {
defer fmt.Print("2")
}
continue继续循环、break退出循环
4.for
for i :=1;i<5;i++{
fmt.Print(i)
}
5.switch
与c/c++/python不同,如果不在其中执行break,所有的case也不会依次输出,只会输出对应的哪一个。
a:=2
switch a{
case 1:fmt.Println(1)
case 2:fmt.Print(2)
default:
fmt.Print("未知")
}
6.数组
func main(){
//1
var a [5]int
a[4]=100
//2
b:=[5]int{1,2,3,4,5}
//3
var twoD [2][3]int
for i:=0;i<2;i++{
for j:=0;j<3;j++{
twoD[i][j]=i*j
}
}
fmt.Println("2d:",twoD)
fmt.Println("1d:",a)
fmt.Println("1d:",b)
}
7.map
//map无序
m:=make(map[string]int)
//添加
m["one"]=1
m["two"]=2
//m长度
fmt.Println("length:",len(m))
//删除
delete(m,"one")
fmt.Println("m:",m)
//
m1:=map[string]int{"one":1,"two":2}
fmt.Println("m1:",m1)
8.函数
返回形式写在后面
func add(a int,b int) int {
return a*b
}
func add2ptr(n *int){
*n+=2//取n的内容
}
四、猜谜游戏
通过math/rand随机生成一个数字,交给用户去猜,如下:‘
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main(){
maxNum:=100
secretNumber:=rand.Intn(maxNum)
rand.Seed(time.Now().UnixNano())//确保随机产生的值不同
fmt.Print("The secret number is ",secretNumber)
fmt.Print("Please input a num!")
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Print("An error occured while reading input.Please try again!", err)
return
continue
}
input = strings.TrimSuffix(input, "\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input!Please enter an integer value!")
return
continue
}
fmt.Print("Your guess is ", guess)
if guess > secretNumber {
fmt.Println("大了")
} else if guess < secretNumber {
fmt.Println("小了")
} else{
fmt.Println("对了")
break
}
}
}
五、入门心得
作为一名程序员,我喜欢尝试不同的编程语言来实现各种任务。最近我开始使用Go语言,并且对这门语言产生了极大的兴趣。
首先,让我们来看看Go语言的优点。第一个优点就是速度。Go语言被设计成一门快速、高效的语言,能够快速处理大量数据和高并发请求。Go语言还具有自动垃圾回收和内置并发机制等特性,在编写大型应用时非常方便。
第二个优点是简单易学。作为一门静态类型的语言,Go语言的语法非常简单明了,它能够轻松地处理多线程和并发编程等复杂问题,同时也支持面向对象编程。此外,Go语言具有良好的可读性和可维护性,使得代码更加清晰易懂。
第三个优点是跨平台性。Go语言可以编写跨平台程序,因为它支持多种操作系统和平台。这也意味着可以用一些通用的工具或库来开发多个平台上的应用。