本文介绍: 注意,尽管可以省略常量的类型,但是Go语言并不会自动推断常量的类型。如果省略了常量的类型,那么这个常量可以被认为是任何类型,只要它是合法的。工作区是存放Go语言代码的地方,它应该包含三个子目录:src(源代码)、pkg(包文件)和bin(可执行文件)。环境变量是操作系统用来指定运行环境的一种参数,例如,系统会通过PATH环境变量来查找可执行文件。对于Windows用户,下载.msi文件,然后双击该文件,按照提示进行安装即可。例如,可以将上面的PI常量用在任何需要float64或int类型的地方。

TOC

1. Go 安装与环境变量

1.1 下载

需要从Go语言的官方网站下载适合你操作系统的Go语言安装包。Go语言支持多种操作系统,包括Windows、Linux和Mac OS。
在这里插入图片描述

对于Windows用户,下载.msi文件,然后双击该文件,按照提示进行安装即可。
对于Linux和Mac OS用户,可以下载.tar.gz文件,然后在终端中使用以下命令进行安装:

tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz

这里,$VERSION表示下载的Go语言版本,$OS表示操作系统,$ARCH表示架构。

1.2 设置环境变量

安装Go语言后,需要设置环境变量。环境变量是操作系统用来指定运行环境的一种参数,例如,系统会通过PATH环境变量来查找可执行文件。
对于Go语言,需要设置GOROOTGOPATH两个环境变量。
GOROOT是Go语言安装的位置。如果按照默认设置进行安装,那么Go语言通常会被安装在/usr/local/go(Linux和Mac OS)或C:Go(Windows)。
GOPATH是工作区位置。工作区是存放Go语言代码的地方,它应该包含三个子目录:src(源代码)、pkg(包文件)和bin(可执行文件)。
可以通过以下命令设置这两个环境变量:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

这些命令将GOROOT设置为Go语言的安装位置,将GOPATH设置为工作区,然后将这两个位置的bin子目录添加到PATH环境变量,使得可以直接运行这些目录中的可执行文件。
使用

go version

验证是否安装成功:
在这里插入图片描述

2. Go 基本语法

2.1 Go关键字

关键词 说明 关键词 说明 关键词 说明
break 用于中断当前循环或开关语句的执行。 default 用于开关语句中的默认情况。 func 用于声明一个函数或方法。
interface 用于声明一个接口类型,定义了一组方法的集合。 select 用于选择可以进行通信的多个通道操作。 case 用于开关语句中的每个情况。
defer 用于延迟执行一个函数调用,通常用于释放资源或处理错误。 go 用于启动一个新的协程(goroutine),以并发执行函数或方法。 map 用于声明一个映射(字典)类型,用于存储键值对的无序集合。
struct 用于声明一个结构体类型,用于组织和存储多个字段的集合。 chan 用于声明一个通道类型,用于在协程之间进行通信。 else 用于在if语句中,当条件为假时执行的代码块。
goto 用于无条件地转移到程序中的另一个标签。 package 用于声明一个包,包含一组相关的Go语言源文件。 switch 用于根据表达式的值选择不同的执行路径。
const 用于声明一个常量,其值在编译时确定且不可更改。 fallthrough 用于开关语句中的穿透下一个情况。 if 用于条件判断,根据条件的真假执行不同的代码块。
range 用于迭代数组、切片、映射或字符串等可迭代对象的元素。 type 用于声明一个自定义类型,可以是基本类型的别名或结构体等复合类型。 for 用于循环执行一段代码块,可以用于迭代、条件判断等。
continue 用于跳过当前循环的剩余代码,并开始下一次循环。 import 用于导入其他包,以便在当前包中使用其功能。 return 用于从函数中返回结果。
var 用于声明一个变量,可以是任何类型。

Go的关键字并不是很多,只有25个关键字。

2.2 数据类型

数据类型 说明 数据类型 说明
bool 布尔类型,表示真或假。 int 整数类型,表示整数值。
int8 8位有符号整数类型,表示范围为-128到127的整数。 int16 16位有符号整数类型,表示范围为-32768到32767的整数。
int32 32位有符号整数类型,表示范围为-2147483648到2147483647的整数。 int64 64位有符号整数类型,表示范围为-9223372036854775808到9223372036854775807的整数。
uint8 8位无符号整数类型,表示范围为0到255的整数。 uint16 16位无符号整数类型,表示范围为0到65535的整数。
uint32 32位无符号整数类型,表示范围为0到4294967295的整数。 uint64 64位无符号整数类型,表示范围为0到18446744073709551615的整数。
float32 32位浮点数类型,表示范围为IEEE-754 32位浮点数。 float64 64位浮点数类型,表示范围为IEEE-754 64位浮点数。
complex64 64位复数类型,由两个32位浮点数表示实部和虚部。 complex128 128位复数类型,由两个64位浮点数表示实部和虚部。
string 字符串类型,表示一串字符。 rune Unicode字符类型,表示一个Unicode码点。
byte 字节类型,表示一个8位无符号整数。 uintptr 无符号整数类型,用于存储指针的整数值。

2.3 变量&常量

变量:
使用var关键字声明一个变量:

var a int

这行代码声明了一个名为a的变量,类型为int。如果没有给变量赋值,它将被初始化为零值。对于int类型,零值是0。
也可以在声明变量的同时给它赋值:

var a int = 10

如果在声明变量的同时赋值,Go语言可以自动推断变量的类型,所以可以省略类型:

var a = 10

如果要声明多个变量,可以这样做:

var a, b, c int
var (
    a int
    b float64
    c string
)

在函数内部,你可以使用更简洁的:=操作符声明并初始化变量(仅限函数内部):

a := 10

常量:
使用const关键字声明一个常量:

const PI float64 = 3.141592653589793

这行代码声明了一个名为PI的常量,类型为float64,值为3.141592653589793。一旦声明,不能改变一个常量的值。

const (
    PI = 3.141592653589793
    E  = 2.718281828459045
)

一次性声明多个.

注意,尽管可以省略常量的类型,但是Go语言并不会自动推断常量的类型。如果省略了常量的类型,那么这个常量可以被认为是任何类型,只要它是合法的。
例如,可以将上面的PI常量用在任何需要float64或int类型的地方。

2.4 运算符

运算符 含义 举例
++ -- 自增和自减 a++ a--
+ - ! ^ * & <- &^ 一元运算符 +a -a !a ^a *a &a <-ch &^a
* / % << >> & &^ 乘法、除法、取余、左移、右移、位与、位清空 a*b a/b a%b a<<b a>>b a&b a&^b
+ - | ^ 加法、减法、位或、位异或 a+b a-b a|b a^b
== != < <= > >= 等于、不等于、小于、小于等于、大于、大于等于 a==b a!=b a<b a<=b a>b a>=b
<- 接收操作符 v <- ch
&& 逻辑与 a && b
|| 逻辑或 a || b
= += -= *= /= %= <<= >>= &= &^= |= ^= 赋值、加等、减等、乘等、除等、取余等、左移等、右移等、位与等、位清空等、位或等、位异或等 a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a&^=b a|=b a^=b

2.5 流程控制

流程控制 说明 流程控制 说明
switch 用于根据表达式的值选择不同的执行路径。 select 用于在多个通道操作中选择一个可执行的操作。
for 用于循环执行一段代码块,可以用于迭代、条件判断等。 for-range 用于迭代数组、切片、映射或字符串等可迭代对象的元素。
if 用于条件判断,根据条件的真假执行不同的代码块。 break 用于中断当前循环或开关语句的执行。
continue 用于跳过当前循环的剩余代码,并开始下一次循环。 标签 用于在循环或开关语句中标记一个位置,以便在其他地方进行跳转。
goto 用于无条件地转移到程序中的另一个标签。

3. HellowWorld

创建一个hello.go的文件,不需要IDE,使用文本编辑器就行。
写入如下代码:

package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

和其他编程语言相同,Go也是main作为主入口,而且需要注意,必须是package mainmain是主入口。
使用go run hello.go运行:
在这里插入图片描述

原文地址:https://blog.csdn.net/a18792721831/article/details/135572152

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_57734.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注