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

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

Go编程哲学

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

Go的并发

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

Go的基本内容

基础部分

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

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

方法

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

接口

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

使用goroutines和channnels处理并发编程

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

包机制和包的组织结构

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

单元测试

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

反射

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

更所底层编程的细节

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

相关文章
|
3月前
|
安全 Java 编译器
对比Java学习Go——基础理论篇
本章介绍了Java开发者学习Go语言的必要性。Go语言以简单、高效、并发为核心设计哲学,摒弃了传统的类继承和异常机制,采用组合、接口和多返回值错误处理,提升了代码清晰度与开发效率。Go直接编译为静态二进制文件,启动迅速、部署简便,其基于Goroutine和Channel的并发模型相较Java的线程与锁机制更轻量安全。此外,Go Modules简化了依赖管理,与Java的Maven/Gradle形成鲜明对比,提升了构建与部署效率。
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
181 1
|
3月前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
|
3月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
4月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
383 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
246 0
|
4月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
223 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
321 0
|
10月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
4月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
291 1

热门文章

最新文章