Go语言学习

目录

一、go环境配置

二、创建一个go语言项目

三、HelloWord

四、基本数据类型

五、变量

六、运算符

七、键盘输入输出

八、if语句

九、switch语句

十、for循环


一、go环境配置

要配置Go环境,请按照以下步骤进行操作:

  1. 下载Go:去Go的官方网站(https://golang.org/dl/)下载适合你操作系统的Go安装包。

  2. 安装Go:打开下载的安装包,按照提示进行安装。对于Windows用户,建议选择默认安装路径。

  3. 配置环境变量:

    • 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
    
  4. 验证安装:在终端或命令提示符中输入以下命令,查看Go的版本号:

    go version
    

    如果成功显示Go的版本信息,则说明安装和配置成功。

配置Go环境完成后,你就可以开始使用Go编写和运行程序了。

二、创建一个go语言项目

要创建一个Go语言项目,你需要按照以下步骤进行操作:

  1. 安装Go语言:在你的计算机上安装Go语言的最新版本。你可以从官方网站下载适合你操作系统的安装包,并按照提示进行安装。

  2. 创建项目文件夹:在你的计算机上选择一个合适的文件夹,用于存放你的项目文件。

  3. 初始化模块:在你的项目文件夹中打开命令行终端,并执行以下命令来初始化一个Go模块:

    go mod init github.com/your-username/your-project-name
    

    这个命令会创建一个名为 go.mod 的文件,用于管理你的项目的依赖关系。

  4. 创建main文件:在你的项目文件夹中创建一个名为 main.go 的文件。这个文件将包含你的项目的主要代码。

  5. 编写代码:在 main.go 文件中编写你的Go代码。你可以使用任何你熟悉的文本编辑器或IDE来编辑这个文件。

  6. 构建和运行项目:在终端中导航到你的项目文件夹,并执行以下命令来构建和运行你的项目:

    go build
    ./your-project-name
    

    这将使用Go编译器将你的代码编译成可执行文件,并运行它。

  7. 添加其他文件和包:根据你的项目需求,你可以在项目文件夹中创建其他的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.Scanfmt.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 是要进行比较的表达式,可以是任何类型,包括整数、浮点数、字符串、布尔类型等。

value1value2 等是与 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循环和无限循环。

  1. for循环:最常用的形式,可以用来遍历数组、切片、映射等数据结构。它的语法如下:
for 初始语句; 条件表达式; 结束语句 {
    // 代码块
}

其中,初始语句在循环开始前执行一次,条件表达式在每次循环开始前判断,结束语句在每次循环结束后执行。

示例:

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

该循环将打印出0、1、2、3、4。

  1. while循环:在Go语言中,没有专门的while关键字,但可以使用for循环来实现while循环的功能。它的语法如下:
for 条件表达式 {
    // 代码块
}

示例:

i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

  1. 无限循环:有时候需要无限循环执行一段代码,可以使用for循环的无限循环形式。它的语法如下:
for {
    // 代码块
}

示例:

i := 0
for {
    fmt.Println(i)
    i++
    if i >= 5 {
        break
    }
}

这段代码将无限循环打印出0、1、2、3、4,并在i大于等于5时跳出循环。

相关推荐

  1. go语言学习计划。

    2024-07-18 10:54:01       73 阅读
  2. Go语言学习

    2024-07-18 10:54:01       51 阅读
  3. go语言学习

    2024-07-18 10:54:01       29 阅读
  4. Go语言学习

    2024-07-18 10:54:01       23 阅读
  5. go语言学习-包管理

    2024-07-18 10:54:01       62 阅读
  6. Go语言学习第一天

    2024-07-18 10:54:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 10:54:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 10:54:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 10:54:01       62 阅读
  4. Python语言-面向对象

    2024-07-18 10:54:01       72 阅读

热门阅读

  1. Spring Boot集成ShardingSphere详解

    2024-07-18 10:54:01       21 阅读
  2. 石油与化工行业的工业互联网平台革新之路

    2024-07-18 10:54:01       23 阅读
  3. 10 个c++ cuda 编程例子

    2024-07-18 10:54:01       24 阅读
  4. centos 在线方式安装Node.js 20.15.1 版本(2024最新)

    2024-07-18 10:54:01       24 阅读
  5. flutter app 技术需求规划 设计

    2024-07-18 10:54:01       26 阅读
  6. 库卡机器人示教器 KPC2 00107-264 KPC200.107-264

    2024-07-18 10:54:01       23 阅读
  7. Redis数据结构-跳跃表 skiplist

    2024-07-18 10:54:01       18 阅读
  8. flutter 版本自动更新调研

    2024-07-18 10:54:01       20 阅读
  9. python 结合mitmproxy 抓取指定接口数据

    2024-07-18 10:54:01       24 阅读