前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0到1入门Go!!!

从0到1入门Go!!!

原创
作者头像
Blue_007
修改2023-10-25 14:09:12
8750
修改2023-10-25 14:09:12
举报
文章被收录于专栏:代码生涯代码生涯

一、什么是Go? 🎃

相信大家或多或少都听说过 GO 语言,它是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

那它究竟有何强大之处?它的开发者群体又是否足够庞大呢?

1.1 Go的设计目标 🎍

设计 GO 语言的目标是为了消除各种缓慢和笨重、改进各种低效和扩展性。Go是为开发大型系统的人设计的。

1.2 Go的崛起速度 🎊

GO 是腾讯内部第二大热门语言,在 21年和22年 腾讯研发大数据报告 中就显示,随着腾讯云计算和大数据相关业务的迅速发展,GO 语言成为腾讯最热门的编程语言。360、小米、百度等等都有在使用 GO

同时根据 GO 趋势报告显示,全球范围内有 110 万专业开发者选择 GO 作为其主要开发语言。如果把以其他编程语言作为主要开发语言,同时也在使用 GO 的开发者计算在内,这一数字将高达270万,中国的 GO 语言开发者排名第一,全球占比超过16%。

1.3 Go的优点 🎇
  • 自由,命令行应用、网络服务、Daemons(守护进程)、数据库。它足够的灵活,甚至可以做嵌入式开发;
  • 效率,使用 GO 编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程;
  • 容易入手,基本语法不多,几天时间就能大概掌握;
  • 丰富的标准库,包括互联网应用、系统编程和网络编程。标准库已经是非常稳定了。
1.4 Go的应用场景 🎁

目前 GO 语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域


二、安装Go 🎡

下面就让我们一起进入 GO 的世界吧!

2.1 环境配置 🍤

GO 语言支持以下系统:Linux、Mac、Windows

  1. 下载环境,选择自己的安装环境

安装包下载地址为:https://golang.org/dl/

  1. 本地安装,选择安装的目录后,会生成 GO 文件夹在安装目录下;
  2. 添加到Path环境变量中(选择安装的目录例如E:\Go\Go1.18)

key:GOROOT

val:安装的目录

2.2 是否安装成功 🚘

命令行输入:

go version

出现上面的提示,便是安装成功!

2.2 测试 🏭

新建文件 test.go 测试一下,内容(经典出现!😁):

三、开发工具 🏆

推荐使用JetBrains的Goland呢🤩

四、基本知识 🔑

4.1 Go的文件名 👜

所有的 GO 源码都是以 .go 结尾

4.2 Go的基础组成 ⛸
  • 包声明,编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如package main。
  • 引入包,其实就是告诉 Go 编译器这个程序需要使用的包,如import "fmt"其实就是引入了fmt包。
  • 函数,和其他语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数
  • 变量,GO 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
  • 语句/表达式,在 Go 程序中,一行代表一个语句结束。每个语句不需要像其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。
  • 注释,和c语言中的注释方式相同,可以在任何地方使用以 // 开头的单行注释。以 / 开头,并以 / 结尾来进行多行注释,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
4.2 Go的声明 🧶

有四种主要声明方式:

var(声明变量)、const(声明常量)、type(声明类型)、func(声明函数)

声明的位置决定其作用域:

1)声明在函数内部,是函数的本地值,类似 private

2)声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似 protect

3)声明在函数外部且首字母大写是所有包可见的全局值,类似 public


4.2.1 变量 🎢

var 变量名字 类型 = 表达式

其中 “类型”“= 表达式” 两个部分可以省略其中的一个

  • 省略类型信息,那么将根据初始化表达式来推导变量的类型信息。
  • 省略初始化表达式,那么将用零值初始化该变量。

数值类型变量对应的零值是0,布尔类型变量对应的零值是false,字符串类型对应的零值是空字符串,接口或引用类型(包括slice、指针、map、chan和函数)变量对应的零值是nil。数组或结构体等聚合类型对应的零值是每个元素或字段都是对应该类型的零值。

案例:

4.2.2 常量 🧬

常量的定义使用关键字const,常量名一般使用大写字母,多个单词之间使用下划线分隔。常量的值可以是数字、字符串、布尔值等。

const name = value

案例:

4.2.3 类型 ⛑

类型分为基本类型和复合类型两种。下面分别列举并说明。

基本类型

说明

bool

布尔型,值为true或false

uint8-uint64

无符号整型,uint8取值范围为0到255,uint64取值范围为0到18446744073709551615,同时也有uint16、uint32

int8-int64

有符号整型,int8取值范围为-128到127,int64取值范围为-9223372036854775808到9223372036854775807,同时也有int16、int32

float32、float64

分别为32位、64位浮点型,可以表示小数,前者精度为7位小数,后者精度为15位小数

byte

8位无符号整型,与uint8相同

rune

32位有符号整型,表示一个Unicode码点

uintptr

无符号整型,用于存放一个指针的地址

复合类型

说明

string

字符串类型,由一串Unicode码点组成

array

数组类型,元素类型相同,长度固定

slice

切片类型,可以动态增长或缩小长度

map

映射类型,键值对类型

struct

结构体类型,由若干个字段组成,每个字段可以是任意类型

interface

接口类型,可以包含任意类型的值

channel

通道类型,用于在多个goroutine之间传递数据

Go 语言还支持类型别名,可以用type关键字为现有的类型定义一个别名。例如:

类型别名在代码维护和兼容性方面有一定的作用。

总的来说,Go语言的类型非常丰富,支持基本类型和复合类型,可以满足各种编程需求。同时,Go语言的类型系统非常强

4.2.4 函数 🎨

函数的定义使用关键字func

func 函数名() {}

案例:

4.3 Go的格式化输出 🦺

Go 语言中的格式化输出是通过fmt包实现的,它支持的格式化动词。

下面是几个常用的格式化动词及其含义:

  • %d:将整数格式化为十进制整数。
  • %f:将浮点数格式化为十进制浮点数。
  • %e:将浮点数格式化为科学计数法表示。
  • %s:将字符串格式化为字符串。
  • %v:将值的默认格式表示为字符串。

除了动词之外,还可以使用一些修饰符来控制输出格式,如:

  • %5d:将整数格式化为长度为5的十进制整数。
  • %6.2f:将浮点数格式化为长度为6,保留2位小数的十进制浮点数。

案例:

4.4 常用语句及关键字 🎠
4.4.1 条件语句 🎱

相关的条件语句如下表所示:

语句

描述

if 语句

if 语句 由一个布尔表达式后紧跟一个或多个语句组成。

if…else 语句

if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。

switch 语句

switch 语句用于基于不同条件执行不同动作。

select 语句

select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

  • if语句
  • if-else语句
  • switch语句
  • select语句
4.4.1 循环语句 🪀

使用for实现循环的,共有三种形式:

for init; condition; post {} for condition{} for{}

除此以外,for循环还可以直接使用range对slice、map、数组以及字符串等进行迭代循环,格式如下:

循环控制语句:

控制语句

详解

break

中断跳出循环或者switch语句

continue

跳过当前循环的剩余语句,然后继续下一轮循环

continue

将控制转移到被标记的语句

五、结语

看到这里,相信大家对 go 有了一定的了解,同时也算入门Go 啦,接下来可以去探索更深层次的go知识了。

邀请人:杨不易呀

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是Go? 🎃
    • 1.1 Go的设计目标 🎍
      • 1.2 Go的崛起速度 🎊
        • 1.3 Go的优点 🎇
          • 1.4 Go的应用场景 🎁
          • 二、安装Go 🎡
            • 2.1 环境配置 🍤
              • 2.2 是否安装成功 🚘
                • 2.2 测试 🏭
                • 三、开发工具 🏆
                • 四、基本知识 🔑
                  • 4.1 Go的文件名 👜
                    • 4.2 Go的基础组成 ⛸
                      • 4.2 Go的声明 🧶
                        • 4.2.1 变量 🎢
                        • 4.2.2 常量 🧬
                        • 4.2.3 类型 ⛑
                        • 4.2.4 函数 🎨
                      • 4.3 Go的格式化输出 🦺
                        • 4.4 常用语句及关键字 🎠
                          • 4.4.1 条件语句 🎱
                          • 4.4.1 循环语句 🪀
                      • 五、结语
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档