Go语言初始

Go(Golang)是由Google开发的静态强类型语言,以其高性能、高并发和简洁的语法受到青睐。本文介绍了Go的基本语法,包括HelloWorld示例、变量声明、控制流(if/else,for,switch)、数组、切片、map的使用,以及函数、指针和结构体的概念。Go语言还强调内存安全和垃圾回收,适合编写微服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"当我回头,妄想找到幸福的线索,那束光拉长我的影子,逃离我。"

一、Go简介

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强乐西、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全, GC(垃圾回收), 结构形态及 CSP-style 并发计算。 Go(计算机编程语言)

go也是现在很火的一个语言。很多的大厂如字节、百度、谷歌等等内部上万的微服务,使用golang来编写,可以说在未来它的发展前景市场占有率会越来越高。

go语言的特点:

1.高性能、高并发
2.语法简单、精炼,顺序C、C++语言的 容易上手
3.标准库丰富
4.跨平台
5.静态编译 等等

二、Go的基础语法

(1)Hello world

运行程序:
①go run + filename
②go build + filename 会直接生成可执行二进制程序

第一行package main代表该文件属于main包的一部分。是程序的入口点

第三行import类似python的import导入模块。要使用标准库里的函数,在C、C++中的做法通常为#include<...>。FMT里面包含了打印到显示器的函数

注意:main后面的第一个花括号一定是和main函数在同一行的!

(2)定义变量

go它是一门强类型的语言,每一个变量都有它自己的类型,不像python是一门动态类型的语言,变量的类型可以不断变化。

go常见的类型:
字符串、整型、浮点型、布尔类型
为此,字符串可以直接用+、==进行拼接和比较。这是类似python 的语法。

声明方式:
①var + 变量名 (类型属性)= 值属性
②变量名 := 值属性
③对于常量类型,把var去掉 带上const即可

(3)Go语言的控制语句

ifelse:

golang中的ifelse条件不需要代括号,并且后面需要跟上大括号 。
在条件中也可以定义变量

循环语句:

go中摈弃了while、dowhile 唯独保留了for。并且break、continue仍然是可以在go中使用的。
for循环中间的任意一段都可以省略

switch:

golang没有像python切掉switch的语法。并将switch分支结构完善得更强大。

switch的条件不仅仅可以是整数

(4)数组切片

golang数组定义也有两种方法:
①var + 变量名 + [个数] 类型
②变量名 := [个数]类型 {初始化}
注:var 不能用{}初始化

切片;

用make创建一个切片,用它像数组一样去使用。

(5)map

在其他编程语言,习惯叫它为哈希、字典。

1.mapName := map[keyType]valueType
{ "KEY1":"Value1",
"KEY2":"Value2",
"KEY3":"Value3"}
2.我们可以使用make去创建一个字典
map使用[] 会返回两个值,而不单单是value

(6)range

range通常用来快速遍历,使代码更简洁。它在遍历的时候,也会返回两个值,一个是容器的索引,第二个是索引下的值。如果我们想去掉返回值的其中一个,在对应位置_ 替代。

(7)函数\指针

golang的函数支持多个返回值。

golang保留C、C++中指针的使用;

(8)结构体\结构体方法

定义结构体:
type 变量名 struct{
//进行初始化
a type
b type
}

结构体方法:
func (u *user) 函数名(){
}

三、Go的库函数例举

(1)错误处理

在函数的返回值里面加一个error,就代表该函数处理可能会返回错误。

如果出现错误,只需要返回一个 nil和一个 error.

(2)字符串操作与格式化

strings.操作:

strings.Contains 子串是否包含
strings.Count 统计个数
strings.HasPrefix 前缀包含
strings.HasSuffix 后缀包含
strings.Index 第一次出现的下标
strings.Join 拼接
strings.Repeat 重复
strings.Replace 替代
strings.Split 分割
strings.ToLower 小写
strings.ToUpper 大写

字符串格式化;

Go中的printf类似于 C语言的printf。不同的是,%v可以打印任意类型,%+v 与 %#v会更加详细地进行打印

(3)JSON的处理

我们创建一个结构体。并保证每个字段的第一个字母是大写的公开字段,那么这个结构体就可以用JSON.marshaler去序列化。变成一个JSON字符串。也可以采用JSON.unmarshaler去反序列化。

(4)时间处理

time.Now() 即刻时间
time.Date() 设置时间
t.Year()\t.Month()\t.Day()\t.Hour()\t.Minute()
t.sub() 时间转换
now.Unix()时间戳

(5)数字解析

strconv 就是子串转换
我们可以用Atoi把一个十进制数转换为数字,也可以用itoA把数字转换为字串
如果输入错误 会返回err

(6)进程信息

os.Args 获取命令行输入的参数
os.Getenv\Setenv 分贝是获取和设置环境变量

本篇到此结束,感谢你的阅读

祝你好运,向阳而生~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值