Go基础语法
什么是go语言
- 高性能高并发
- 语法简单,学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
字节为什么全面拥抱Go语言
- 最初使用的 Python,由于性能问题换成了 Go
- C++ 不太适合在线 Web 业务
- 早期团队非 Java 背景
- 性能比较好
- 部署简单、学习成本低
- 内部 RPC 和 HTTP 框架的推广
基础语法
go是强类型语言 本文只着重记录go相较别的语言比较特殊的地方,一些公有的基础不再赘述
变量的声明:
var a =xxx
var b,c int = 1, 2
var d =true
var e float64
f := float32(e)
g := a+"foo"
if else
- if后面没有小括号,条件后直接加大括号
循环
- 只有唯一的一种for循环
switch
不需要加break
数组
切片
map
实际使用过程中,使用最频繁的数据结构
range
如果你只需要索引,可以使用
_ 来忽略值:
for index, _ := range mySlice {
// 只使用 index 做一些操作
}
如果你只需要值,可以使用 _ 来忽略索引:
for _, v := range slice {
// 使用值v
}
函数
指针
用途:对传入的参数进行修改
结构体
结构体方法
错误处理
字符串操作
字符串格式化
- Println打印并换行
- Printf %v 打印所有类型的
- +v打印更加详细的信息
- #v打印出结构体整个构造
- .2f 保留2位小数的
json操作
Marshal()
如果想要打印出来字段的名字是小写则加
时间处理
time.now()获取当前时间
t2.Sub(t) 对两个时间进行减法,得到一个时间段长
数字解析
将字符串转为整数或浮点数
ParseInt("111",10,64)
10进制,64位精度的
- 如果你需要处理的整数在
int类型的范围内,可以使用strconv.Atoi。 - 如果你需要处理更大或更小的整数,或者需要指定特定的基数,应该使用
strconv.ParseInt
对比:
strconv.Atoi函数只有一个字符串参数,它返回一个int和一个error。strconv.ParseInt函数有三个参数:要解析的字符串、基数(进制,必须在 2 到 36 之间)、以及位大小(10 表示 int32 或 uint32,0 表示 int64 或 uint64)
进程信息
os.Getenv()
os.Setenv() 获取或者写入环境变量
exec.Command() //快速执行子进程并输出
建议
学习Go语言基础语法是掌握这门语言的第一步。以下是一些建议,可以帮助你更有效地学习Go语言的基础语法:
-
官方文档:
- 从Go语言的官方文档开始,它提供了全面的教程和参考手册。
-
在线教程:
- 利用在线资源,如Go by Example,它通过实例来教授Go语言的使用。
-
书籍:
- 阅读一些入门书籍,比如《The Go Programming Language》(也称为Tour of Go)和《Go in Action》。
-
视频教程:
- 观看视频教程,如YouTube上的Go语言教程,这些通常更直观易懂。
-
实践编程:
- 通过实际编写代码来学习。可以从简单的程序开始,逐步增加复杂性。
-
理解基础概念:
- 掌握变量、数据类型、控制结构(if、for、switch)、函数、包、错误处理等基础概念。
-
并发编程:
- 学习Go语言的并发特性,如goroutine和channel。
-
代码阅读:
- 阅读其他人的Go代码,理解他们的编程风格和最佳实践。
-
编写单元测试:
- 学习如何为Go代码编写单元测试,这是Go语言文化的一个重要部分。
-
参与社区:
- 加入Go语言社区,如Go语言的官方论坛和Reddit的Go语言板块。
-
编写博客或教程:
- 尝试自己写一些关于Go语言的博客或教程,这可以帮助你巩固学到的知识。
-
解决实际问题:
- 尝试用Go语言解决实际问题,比如编写一个简单的web服务或命令行工具。
-
代码审查:
- 参与代码审查,这可以帮助你学习到更多的编程技巧和最佳实践。
-
持续学习:
- 编程是一个持续学习的过程,不断地学习新的库、框架和最佳实践。
-
使用IDE和工具:
- 使用集成开发环境(IDE)和代码编辑器,如GoLand、VS Code等,它们提供了代码补全、语法检查和调试功能。
-
遵守代码规范:
- 遵循Go语言的代码规范,这有助于编写可读性和可维护性更高的代码。
-
构建项目:
- 尝试构建一个完整的项目,这将帮助你整合所学的知识,并了解软件开发的全过程。
记住,学习编程语言是一个逐步的过程,不要急于求成。通过不断的实践和学习,你将逐渐掌握Go语言的基础语法和高级特性