Golang——1、环境搭建与入门

发布于:2025-05-23 ⋅ 阅读:(23) ⋅ 点赞:(0)

1、Golang介绍

Go即Golang, 是Google公司2009年11月正式对外公开的一门编程语言。
根据Go语言开发者自述, 近10多年, 从单机时代的 C 语言到现在互联网时代的Java,都没有令人满意的开发语言,而C++往往给人的感觉是,花了100%的经历, 却只有60%的开发效率,产出比太低,Java和C#的哲学又来源于C++。 并且,随着硬件的不断升级,这些语言不能充分的利用硬件及CPU。 因此,一门高效、简洁、开源的语言诞生了。
Go 语言不仅拥有静态编译语言的安全和高性能, 而且又达到了动态语言开发速度和易维护性。 有人形容Go语言:Go = C + Python , 说明Go语言既有C语言程序的运行速度, 又能达到Python语言的快速开发。

Go语言成功的项目:docker、packer、nsq、skynet等等。
另外Golang在谷歌、脸书、字节、腾讯等公司都有在使用。


2、Go环境搭建

1、下载安装Golang
Go 官方镜像站:https://golang.google.cn/dl/
在这里插入图片描述
选择如图所示windows的软件下载。

2、下载后打开安装包,一路next下去安装即可。
在这里插入图片描述

3、打开命令行,输入go version查看是否安装成功。
在这里插入图片描述
另外也可以查看go环境变量:go env
在这里插入图片描述

说明:Go1.11版本之后无需手动配置环境变量,使用go mod管理项目,也不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目。Go1.13以后可以彻底不要GOPATH了。

4、配置vscode环境,在扩展插件里面搜索Go,安装对应插件。
在这里插入图片描述

5、创建一个项目,尝试编写代码。
在这里插入图片描述
创建一个项目文件夹,然后创建一个main.go文件,即可编写代码。

在这里插入图片描述
编写好代码编译运行文件:
在这里插入图片描述
可以直接go run xxx.go文件直接编译并运行。或者先go build xxx.go编译形成可执行程序,然后再运行。
当我们给打印这行代码添加注释ctrl s保存后,会自动删除导入的fmt模块,这是因为golang规定,不能声明没有使用过的变量。


3、打印函数区别

3.1、Golang定义变量

在这里插入图片描述

3.2、fmt包、Print、Println、Printf

在这里插入图片描述
3.2.1、Print和Println的区别:
在这里插入图片描述
一次输出多个值的时候,我们发现Print中间没有空格,而Println中间是有空格的。

在这里插入图片描述
Print不会换行,Println会自动换行。

3.2.2、Println和Printf的区别:
1、Println默认会换行,Printf不会。2、Printf是格式化输出,比Println功能更加强大灵活。

在这里插入图片描述

%v是占位符,golang中占位符有如下:

3.3、占位符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比如使用%T打印数据类型:
在这里插入图片描述


4、变量定义和初始化

4.1、变量声明

Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。Go语言中关键字和保留字都不能用作变量名。
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。并且Go语言的变量声明后必须使用。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

var name2, name3 string  // name2和name3是同类型的!
name2 = "张三"
name3 = "李四"
fmt.Println(name2, name3)

在这里插入图片描述

var (
	name4 string
	age2  int
	sex   string
)
name4 = "张三"
age2 = 22
sex = "男"
fmt.Println(name4, age2, sex)

还可以批量声明变量并赋值:

var (
	name5 string = "张三"
	age3  int    = 25
	sex2  string = "女"
)
fmt.Println(name5, age3, sex2)

4.2、变量的初始化

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值, 例如:整型和浮点型变量的默认值为 0。 字符串变量的默认值为空字符串。布尔型变量默认为 false。 切片、 函数、 指针变量的默认为nil。
在这里插入图片描述
定义变量的时候初始化:

var name string = "张三"

定义多个变量并初始化:

var name1, name2 = "张三", "李四"
var name3, age = "王五", 20
fmt.Println(name1, name2)
fmt.Println(name3, age)

4.3、类型推导

有时候我们会把变量名称后面的类型省略掉,由编译器自动推导。

var name = "张三"
var age = 20
fmt.Println(name, age)
var (
	name = "张三"
	age  = 20
	sex  = "男"
)
fmt.Println(name, age, sex)

4.4、短变量声明法

在函数内部,可以使用更简略的 := 方式声明并初始化变量。注意:短变量只能用于声明局部变量,不能用于全局变量的声明。

name := "张三"
age := 19
sex := "男"
fmt.Println(name, age, sex)

使用短变量声明法一次声明多个变量:

name, age, sex := "张三", 20, "男"
fmt.Println(name, age, sex)

4.5、匿名变量

在使用多重赋值时, 如果想要忽略某个值,可以使用匿名变量(anonymous variable)。匿名变量用一个下划线_表示,例如:

package main

import "fmt"

func getUserInfo() (string, int) {
	return "张三", 10
}

func main() {
	var username, age = getUserInfo()
	fmt.Println(username, age)

	var name, _ = getUserInfo()
	fmt.Println(name)
}

上面的代码中我们只想获取用户名,并不想获取年龄,所以可以用_匿名变量。
匿名变量不占用命名空间,不会分配内存,所以匿名变量不存在重复声明。


5、Golang中的常量

5.1、使用const定义常量

在这里插入图片描述

const pi = 3.1415
fmt.Println(pi)

多个常量也可以一起声明:

const (
	name = "张三"
	age  = 20
)
fmt.Println(name, age)

const 同时声明多个常量时, 如果省略了值则表示和上面一行的值相同。 例如:

const (
	n1 = 100
	n2
	n3
	n4
)
fmt.Println(n1, n2, n3, n4)

在这里插入图片描述

5.2、const常量结合iota的使用

iota是golang语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。

1、每次const出现时,都会让iota初始化为 0。【自增长】:

const (
	n1 = iota
	n2
	n3
	n4
)
fmt.Println(n1, n2, n3, n4)

在这里插入图片描述

2、const iota使用_跳过某些值:

	const (
		n1 = iota
		_
		n3
		n4
	)
	fmt.Println(n1, n3, n4)

在这里插入图片描述

3、iota声明中间插队:

const (
	n1 = iota
	n2 = 100
	n3 = iota
	n4
)
fmt.Println(n1, n2, n3, n4)

在这里插入图片描述

4、多个iota定义在一行:

const (
	n1, n2 = iota + 1, iota + 2
	n3, n4
	n5, n6
)
fmt.Println(n1, n2)
fmt.Println(n3, n4)
fmt.Println(n5, n6)

在这里插入图片描述

6、Golang代码规范

1、代码每一行结束后不用写分号(😉。
2、运算符左右建议各加一个空格。
3、 Go 语言程序员推荐使用驼峰式命名。
4、左括号必须紧接着语句不换行,这个特性刚开始会使开发者不习惯,但随着对 Go 语言的不断熟悉, 就会发现风格统一让大家在阅读代码时把注意力集中到了解决问题上, 而不是代码风格上。
5、go fmt主要用于格式化文档,让所有人的代码风格保持一致。

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到