当前位置:首页 > 行业动态 > 正文

golang怎么学

Golang简介

Go(又称Golang)是Google开发的一种静态强类型、编译型语言,它适用于多种平台,包括Windows、macOS和Linux等,Go语言的设计目标是实现简单、高效、并发性强的编程模型,Go语言于2007年由Robert Griesemer、Rob Pike和Ken Thompson共同设计,并于2009年正式发布。

环境搭建

1、下载安装

访问Go语言官方下载页面:https://golang.org/dl/ ,选择适合自己操作系统的安装包进行下载,下载完成后,按照提示进行安装即可。

2、配置环境变量

在安装完成后,需要配置环境变量,以便在命令行中使用Go命令,具体操作如下:

Windows系统:将Go的bin目录(如C:Gobin)添加到系统的PATH环境变量中。

macOS和Linux系统:在~/.bashrc或~/.bash_profile文件中添加以下内容:export PATH=$PATH:/usr/local/go/bin

然后执行source ~/.bashrcsource ~/.bash_profile使配置生效。

Hello World

编写一个简单的Hello World程序,演示Go语言的基本语法和运行方式。

package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}

基本数据类型

1、整型:int8、int16、int32、int64、uint8、uint16、uint32、uint64

2、浮点型:float32、float64

3、复数:complex64、complex128

4、bool类型:bool

5、string类型:string

6、空接口:interface{}

7、nil值:nil

8、字节切片:[]byte

9、字符串切片:[]string

10、数组类型:array<T> T表示元素类型,3]int表示一个长度为3的整型数组。

11、映射类型:map<K, V> K表示键类型,V表示值类型,例如map[string]int表示一个字符串到整型的映射。

12、结构体类型:struct {字段名 字段类型} type Person struct {Name string; Age int}表示一个包含姓名和年龄的结构体。

13、接口类型:interface{} 可以表示任意类型的值,用于实现多态,一个类型只有当它的所有方法都实现了接口中的方法时,才能被隐式转换为该接口类型,type Animal interface {Speak() string}表示一个动物应该有Speak方法的接口。

控制结构

1、if条件判断语句:if condition {} else {} else {} if condition {} else {} else {} … else {}表示如果condition成立,则执行if后面的代码块;否则,依次执行else后面的代码块,直到遇到break或者return语句为止,注意:else后面的代码块只有在当前if条件不成立时才会被执行。

2、for循环语句:for init; condition; post {}表示从init开始,每次循环前执行init,每次循环后执行post,直到condition不成立为止,注意:for循环中的init和post部分可以省略。

3、switch分支语句:switch expression := expression; case value1; result1 break; case value2; result2 break; … default result default {}表示根据expression的值与case后的value进行比较,如果相等,则执行对应的result,并跳出switch语句;如果没有匹配到任何case,则执行default后面的代码块,注意:break关键字用于跳出当前switch分支。

4、select分支语句:select expression := expression; case value1 -> result1; case value2 -> result2; … default -> result default {}表示根据expression的值与case后的value进行比较,如果相等,则执行对应的result;如果没有匹配到任何case,则执行default后面的代码块,注意:select语句中的每个case都是阻塞的,即在一个case被执行过程中,其他case不会被执行,如果需要非阻塞的多个case,可以使用goroutine实现。

5、defer语句defer func() {body};表示在函数返回之前执行一段代码,注意:defer语句只能用在函数中,不能用在匿名函数或者闭包中,defer语句不能改变局部变量的作用域。

6、go语句go func() {body};表示创建一个新的goroutine来执行func函数中的代码,注意:go语句只能用在函数声明之后,不能用在函数定义之前,go语句不能嵌套使用。

7、range遍历语句range expression := expression; for index, item := range expression {};表示遍历expression中的每个元素,将元素的值赋给index和item两个变量,然后执行for循环体内的代码,注意:range语句只能用在可迭代对象(如数组、切片、字符串、map等)上。

8、return语句return expression;表示提前结束函数的执行,并将expression的值作为函数的返回值,注意:return语句必须放在函数体中,且只能出现一次,如果没有return语句或者return后面没有表达式,则函数会默认返回nil。

0