Go语言学习
目录
一、go环境配置
要配置Go环境,请按照以下步骤进行操作:
-
下载Go:去Go的官方网站(https://golang.org/dl/)下载适合你操作系统的Go安装包。
-
安装Go:打开下载的安装包,按照提示进行安装。对于Windows用户,建议选择默认安装路径。
-
配置环境变量:
- Windows用户:右键点击“计算机”(或 “此电脑”),选择“属性”,点击“高级系统设置”。在新窗口中,点击“环境变量”,在"系统变量"中找到"Path"变量,点击“编辑”,添加Go的安装路径(例如C:\Go\bin)。
- macOS用户:打开终端,执行以下命令将以下内容添加到你的
~/.bash_profile
文件中:
export PATH=$PATH:/usr/local/go/bin
执行以下命令使配置生效:
source ~/.bash_profile
- Linux用户:打开终端,执行以下命令将以下内容添加到你的
~/.bashrc
文件中:
export PATH=$PATH:/usr/local/go/bin
执行以下命令使配置生效:
source ~/.bashrc
-
验证安装:在终端或命令提示符中输入以下命令,查看Go的版本号:
go version
如果成功显示Go的版本信息,则说明安装和配置成功。
配置Go环境完成后,你就可以开始使用Go编写和运行程序了。
二、创建一个go语言项目
要创建一个Go语言项目,你需要按照以下步骤进行操作:
-
安装Go语言:在你的计算机上安装Go语言的最新版本。你可以从官方网站下载适合你操作系统的安装包,并按照提示进行安装。
-
创建项目文件夹:在你的计算机上选择一个合适的文件夹,用于存放你的项目文件。
-
初始化模块:在你的项目文件夹中打开命令行终端,并执行以下命令来初始化一个Go模块:
go mod init github.com/your-username/your-project-name
这个命令会创建一个名为
go.mod
的文件,用于管理你的项目的依赖关系。 -
创建main文件:在你的项目文件夹中创建一个名为
main.go
的文件。这个文件将包含你的项目的主要代码。 -
编写代码:在
main.go
文件中编写你的Go代码。你可以使用任何你熟悉的文本编辑器或IDE来编辑这个文件。 -
构建和运行项目:在终端中导航到你的项目文件夹,并执行以下命令来构建和运行你的项目:
go build ./your-project-name
这将使用Go编译器将你的代码编译成可执行文件,并运行它。
-
添加其他文件和包:根据你的项目需求,你可以在项目文件夹中创建其他的Go文件,并通过
import
关键字来使用其他的包。
这样,你就成功创建了一个Go语言项目。你可以通过编写更多的代码,添加更多的功能,以及使用其他的工具和框架来完善你的项目。
三、HelloWord
package main
import "fmt"
// main函数,需要package main一个主包
/*
fmt是一个包
Println是print.go中的一个func
*/
func main() {
fmt.Println("Hello World!")
}
go语言需要申明一个package main包,并且需要写一个func main()函数,来运行项目
四、基本数据类型
Go语言的基本数据类型包括以下几种:
1. bool:布尔类型,只能取两个值 true 或 false。
2. numeric types:数值类型,包括整数类型和浮点数类型。
- 整数类型:
- int8:有符号 8 位整数,取值范围为 -128 到 127。
- int16:有符号 16 位整数,取值范围为 -32768 到 32767。
- int32(rune):有符号 32 位整数,取值范围为 -2147483648 到 2147483647。
- int64:有符号 64 位整数,取值范围为 -9223372036854775808 到 9223372036854775807。
- uint8(byte):无符号 8 位整数,取值范围为 0 到 255。
- uint16:无符号 16 位整数,取值范围为 0 到 65535。
- uint32(rune):无符号 32 位整数,取值范围为 0 到 4294967295。
- uint64:无符号 64 位整数,取值范围为 0 到 18446744073709551615。
- 浮点数类型:
- float32:IEEE-754 32 位浮点数。
- float64:IEEE-754 64 位浮点数。
3. complex types:复数类型,包括 complex64 和 complex128,分别表示实部和虚部为 32 位和 64 位的复数。
4. string:字符串类型。
5. nil:空值类型,表示空指针或空接口。
注意:Go语言的基本类型是值类型,它们在赋值或传递时会进行值拷贝,而不是引用拷贝。
五、变量
Go语言中的变量声明和赋值使用关键字`var`,语法如下:
var 变量名 数据类型
例如:
var name string
Go语言中的变量还可以在声明时进行赋值,语法如下:
var 变量名 数据类型 = 值
例如:
var age int = 20
Go语言推荐使用简短声明方式`:=`进行变量声明和赋值,语法如下:
变量名 := 值
例如:
name := "John"
age := 20
在Go语言中,还可以使用多个变量同时进行声明和赋值,语法如下:
var 变量名1, 变量名2, ... 数据类型 = 值1, 值2, ...
例如:
var num1, num2 int = 20, 30
或者使用简短声明方式:
num1, num2 := 20, 30
在Go语言中,还可以使用`_`来表示占位符,用于忽略某个变量的值,例如:
_, name := 1, "John"
这样就可以忽略掉第一个值,只将第二个值赋给`name`变量。
六、运算符
Go语言支持以下类型的运算符:
1. 算术运算符:+、-、*、/、%(取余)、++(自增)、--(自减)
2. 关系运算符:==、!=、>、<、>=、<=
3. 逻辑运算符:&&(与)、||(或)、!(非)
4. 位运算符:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)、&^(按位清零)
5. 赋值运算符:=、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=、&^=
6. 其他运算符:&(取地址)、*(指针取值)、<-(通道接收)、<-(通道发送)
除了以上运算符,Go语言还提供了一些特殊的运算符,例如:
1. .(点操作符):用于访问结构体的成员或调用结构体的方法
2. [](索引操作符):用于访问数组、切片、字符串等的元素
3. ...(可变参数):用于函数定义时指定可变参数列表
4. :=(声明并赋值操作符):用于声明变量并赋初值
5. <-ch(通道操作符):用于发送或接收通道的数据
需要注意的是,不同运算符的优先级不同,可以通过使用括号来改变运算符的优先级。
七、键盘输入输出
在Go语言中,可以通过fmt
包来实现键盘输入输出。
要输出内容到控制台,可以使用fmt.Println
函数。它会在输出内容的末尾添加换行符。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
fmt.Println(1234)
fmt.Println(3.14)
}
要从键盘获取输入,可以使用fmt.Scan
或fmt.Scanln
函数。这些函数会将输入的值存储到提供的变量中。
package main
import "fmt"
func main() {
var name string
fmt.Print("请输入姓名:")
fmt.Scan(&name)
fmt.Println("您好,", name)
}
在上面的例子中,fmt.Print
函数用于输出提示信息,fmt.Scan
函数会等待用户输入,并将输入的值存储到name
变量中,最后使用fmt.Println
函数输出结果。
请注意,Scan
函数需要传递变量的地址作为参数,以便能够将输入的值存储到该变量中。
八、if语句
Go语言中的if语句用于根据条件执行不同的代码块。其基本语法如下:
if condition {
// 当条件为真时执行的代码
} else if condition {
// 当条件为真时执行的代码
} else {
// 当前面的条件都不满足时执行的代码
}
其中,condition为一个布尔表达式,根据其结果来决定执行哪个代码块。
以下是一个示例:
package main
import "fmt"
func main() {
num := 10
if num > 0 {
fmt.Println("num is positive")
} else if num == 0 {
fmt.Println("num is zero")
} else {
fmt.Println("num is negative")
}
}
输出结果为:
num is positive
在上面的示例中,根据变量num的值,if语句选择执行了第一个代码块,并输出了相应的信息。
九、switch语句
在 Go 编程语言中,switch
语句用于根据表达式的不同值执行不同的代码块。其基本语法如下:
switch expression {
case value1:
// code block
case value2:
// code block
...
default:
// code block
}
expression
是要进行比较的表达式,可以是任何类型,包括整数、浮点数、字符串、布尔类型等。
value1
、value2
等是与 expression
进行比较的值。如果 expression
的值与某个 case
的值相等,则执行相应的 case
下的代码块。
default
是可选的,表示当没有任何一个 case
的值与 expression
相等时要执行的代码块。
下面是一个使用 switch
语句的示例:
package main
import "fmt"
func main() {
num := 2
switch num {
case 1:
fmt.Println("One")
case 2:
fmt.Println("Two")
case 3:
fmt.Println("Three")
default:
fmt.Println("Other")
}
}
输出结果为:
Two
在这个示例中,num
的值为 2,因此与 case 2
匹配,执行相应的代码块输出 "Two"。
十、for循环
在Go编程语言中,for循环用于重复执行一段代码块。
Go语言中有三种形式的for循环:for循环、while循环和无限循环。
- for循环:最常用的形式,可以用来遍历数组、切片、映射等数据结构。它的语法如下:
for 初始语句; 条件表达式; 结束语句 {
// 代码块
}
其中,初始语句在循环开始前执行一次,条件表达式在每次循环开始前判断,结束语句在每次循环结束后执行。
示例:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
该循环将打印出0、1、2、3、4。
- while循环:在Go语言中,没有专门的while关键字,但可以使用for循环来实现while循环的功能。它的语法如下:
for 条件表达式 {
// 代码块
}
示例:
i := 0
for i < 5 {
fmt.Println(i)
i++
}
- 无限循环:有时候需要无限循环执行一段代码,可以使用for循环的无限循环形式。它的语法如下:
for {
// 代码块
}
示例:
i := 0
for {
fmt.Println(i)
i++
if i >= 5 {
break
}
}
这段代码将无限循环打印出0、1、2、3、4,并在i大于等于5时跳出循环。
原文地址:https://blog.csdn.net/syq8023/article/details/140485816
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!