学习 Go 语言到底该学习什么 #私藏项目实操分享#

简介: 学习 Go 语言到底该学习什么 #私藏项目实操分享#

Go编程哲学

  • 自动垃圾回收
  • 一个包系统
  • 函数
  • 词法作用域
  • 系统调用接口
  • 只读的UTF8字符串
  • 没有隐式的数值转换
  • 没有构造函数和析构函数
  • 没有运算符重载
  • 没有默认参数
  • 没有继承
  • 没有泛型
  • 没有异常
  • 没有宏
  • 没有函数修饰
  • 更没有线程局部存储

Go的并发

基于CSP的并发特性;动态栈使得轻量级线程goroutine的初始栈很小,因此,创建一个goroutine的代价很小,创建百万级的gorountine完全是可行的。

Go的基本内容

基础部分

与主流命令式编程语言相似,方法、接口、并发、包、测试和反射等特性是Go特有的

  • 基本元素结构
  • 变量
  • 新类型定义
  • 包和文件
  • 作用域
  • 数字
  • 布尔值
  • 字符串
  • 常量
  • 如何显示和处理Unicode字符
  • 复合类型
  • 数组
  • 字典
  • 切片
  • 动态列表
  • 函数
  • 错误处理
  • panic和recover
  • defer语句

方法

  • Go语言的面向对象机制与一般语言不同,没有类层次结构,甚至可以说没有类;
  • 仅仅通过组合(而不是继承)简单的对象来构建复杂的对象。方法不仅可以定义在结构体上,而且,可以定义在任何用户自定义的类型上;并且,具体类型和抽象类型(接口)之间的关系是隐式的,所以很多类型的设计者可能并不知道该类型到底实现了哪些接口

接口

基于顺序通信进程(CSP)概念的并发编程

使用goroutines和channnels处理并发编程

传统的基于共享变量的并发编程

包机制和包的组织结构

如何有效地利用Go自带的工具,使用单个命令完成编译,测试,基准测试,代码格式化,文档以及其他诸多任务。

单元测试

Go语言的工具和标准库中集成了轻量级的测试功能,避免了强大但复杂的测试框架。测试库提供了一些基本构件,必要时可以用来构建复杂的测试构件。

反射

一种程序在运行期间审视自己的能力。反射是一个强大的编程工具,不过要谨慎地使用; 利用反射机制实现一些重要的Go语言库函数,展示了反射的强大用法。

更所底层编程的细节

在必要时,可以使用 unsafe 包绕过Go语言安全的类型系统      

相关文章
|
20天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
31 7
|
19天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
20天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
93 71
|
19天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67
|
20天前
|
存储 Go
go语言中映射
go语言中映射
32 11
|
21天前
|
Go 索引
go语言修改元素
go语言修改元素
27 6
|
11天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
22天前
|
开发框架 Go 计算机视觉
纯Go语言开发人脸检测、瞳孔/眼睛定位与面部特征检测插件-助力GoFly快速开发框架
开发纯go插件的原因是因为目前 Go 生态系统中几乎所有现有的人脸检测解决方案都是纯粹绑定到一些 C/C++ 库,如 OpenCV 或 dlib,但通过 cgo 调用 C 程序会引入巨大的延迟,并在性能方面产生显著的权衡。此外,在许多情况下,在各种平台上安装 OpenCV 是很麻烦的。使用纯Go开发的插件不仅在开发时方便,在项目部署和项目维护也能省很多时间精力。
|
1月前
|
Go 数据安全/隐私保护 开发者
Go语言开发
【10月更文挑战第26天】Go语言开发
40 3
|
1月前
|
Java 程序员 Go
Go语言的开发
【10月更文挑战第25天】Go语言的开发
34 3