当前位置: 首页 > backend >正文

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

环境搭建与入门

  • 1、Golang介绍
  • 2、Go环境搭建
  • 3、打印函数区别
    • 3.1、Golang定义变量
    • 3.2、fmt包、Print、Println、Printf
    • 3.3、占位符
  • 4、变量定义和初始化
    • 4.1、变量声明
    • 4.2、变量的初始化
    • 4.3、类型推导
    • 4.4、短变量声明法
    • 4.5、匿名变量
  • 5、Golang中的常量
    • 5.1、使用const定义常量
    • 5.2、const常量结合iota的使用
  • 6、Golang代码规范

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 stringage2  intsex   string
)
name4 = "张三"
age2 = 22
sex = "男"
fmt.Println(name4, age2, sex)

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

var (name5 string = "张三"age3  int    = 25sex2  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  = 20sex  = "男"
)
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 mainimport "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 = 100n2n3n4
)
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 = iotan2n3n4
)
fmt.Println(n1, n2, n3, n4)

在这里插入图片描述

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

	const (n1 = iota_n3n4)fmt.Println(n1, n3, n4)

在这里插入图片描述

3、iota声明中间插队:

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

在这里插入图片描述

4、多个iota定义在一行:

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

在这里插入图片描述

6、Golang代码规范

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

在这里插入图片描述

http://www.xdnf.cn/news/8159.html

相关文章:

  • 苍穹外卖06 HttpClient微信小程序开发 微信登录导入商品浏览功能代码
  • Vue3前后端分离用户信息显示方案
  • ModbusRTU转profibusDP网关接皖仪SFJ-16M 氦质谱检漏仪与PLC通讯
  • 虚拟小号查询技术解析
  • Redis进阶之高可用
  • 选新手机的参考:CPU型号、内存、外存、屏幕、摄像头以及电池等。
  • 详解受约束的强化学习(三、公式关系串联)
  • 【Linux 服务器磁盘映像备份与恢复实战指南】虚拟机备份,物理机上云都可以用这套方案!
  • 2025年气候持续大风,消纳减少,如何保收益?东润能源整体解决方案持续保收益保增长
  • C++:面试题汇总
  • 系统与账户安全
  • 一个纯粹基于jQuery和Django的SSE站内信通知的例子
  • 飞牛fnNAS远程映射盘符
  • PARSCALE:大语言模型的第三种扩展范式
  • CAD如何导出PDF?PDF如何转CAD?详细教程来了
  • Phantom 根据图片和文字描述,自动生成一段视频,并且动作、场景等内容会按照文字描述来呈现
  • 对Web界面进行简单自动化测试Selenium
  • vscode git push 记录
  • 现代生活健康养生新策略
  • Aqua Mail Pro 安卓邮件管理助手可备份和恢复的邮件客户端 v1.55.1专业版
  • (第94天)OGG 微服务搭建 Oracle 19C CDB 架构同步
  • 网络安全-等级保护(等保) 3-1-1 GB/T 28448-2019 附录A (资料性附录)测评力度附录C(规范性附录)测评单元编号说明
  • spring boot 实现resp视频推流
  • 觉醒三境:在敦煌的风沙中寻找生命的纹路
  • 基于deepseek 以及豆包工具+nodejs 搭建A I自动化客服系统
  • 角度回归——八参数检测四边形Gliding Vertex
  • 树 Part 9
  • 【IC_Design】跨时钟域的寄存器更新后锁存
  • MyBatis-Plus的自带分页方法生成的SQL失败:The error occurred while setting parameters
  • (37)服务器增加ipv6配置方法