Go 语言的特性和快速体验 | 学习笔记

简介: 快速学习 Go 语言的特性和快速体验

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Go 语言的特性和快速体验】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9488


Go 语言的特性和快速体验

内容介绍:

一、GO 语言的特点

二、快速体验

 

一、GO 语言的特点

又达到了动态语言开发维护的高效率。

Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言∶

Go =C+Python,说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

GO 语言,拥有动态语言开发的效率,也就是说用它来做开发,非常的快。

比如说像这个 python,大家都知道 python 开发效率是比较高的,那么 C 语言的性能是比较高的。

所以说我们如果用一个表达式来说明的话就是:Go =C+Python。

也就是说 GO 即拥有 C 语言的静态编译的性能,同时,又拥有 Python 中动态脚本语言的开发效率。

1)从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和 C 语言一样的编译执行方式及弱化的指针。

2)引入包的概念,用于组织程序结构,Go 语言的一个文件都要归属于—个包,而不能单独存在。

在写代码时,系统会提示,这个代码有没有属于自己的包。

3)垃圾回收机制,内存自动回收,不需开发人员管理(出现内存泄漏)。

4) 天然并发(重要特点)

go 语言,在刚开始设计的时候,它本身能够有效的利用多核多 cpu。那多合作 cpu ,最终。大并发。

在设计时,因为它引入了一个叫做 goroutine 这么一个概念,是一个轻量级的线程。而且可以非常轻松的时间大平方。高效的利用多核。

(1)从语言层面支持并发,实现简单

(2)goroutine,轻量级线程,可实现大并发处理,高效利用多核。

(3)基于 CPS 并发模型(Communicating Sequential Processes )实现。

从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和 C 语言一样的编译执行方式及弱化的指针。

5)吸收了管道通信机制,形成 Go 语言特有的管道 channel

通过管道 channel,可以实现不同的 yoroute 之间的相互通信。

6) 函数返回多个值(示意代码)

7)新的创新∶比如切片、延时执行 defer 等

//写一个函数,实现同时返回 和,差

// go 函数支持返回多个值

func  getSumAndSub(n1 int,n2 int)(int,int ){

Sum:= n1+ n2

sub:=n1-n2

return Sum : Sub

}

相关文章
|
9天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
22 7
|
9天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
9天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
86 71
|
8天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
93 67
|
9天前
|
存储 Go
go语言中映射
go语言中映射
27 11
|
11天前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
27 12
|
10天前
|
Go 索引
go语言使用索引遍历
go语言使用索引遍历
19 9
|
10天前
|
Go 索引
go语言使用range关键字
go语言使用range关键字
18 7
|
10天前
|
Go 索引
go语言修改元素
go语言修改元素
21 6
|
1天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数