2、范例
Python是一种基于面向对象编程的多范式,命令式和函数式编程语言 。它坚持这样一种观点 , 即如果一种语言在某些情境中表现出某种特定的方式 , 理想情况下它应该在所有情境中都有相似的作用 。但是,它又不是纯粹的OOP语言,它不支持强封装,这是OOP的主要原则之一 。
Go是一种基于并发编程范式的过程编程语言,它与C具有表面相似性 。实际上 , Go更像是C的更新版本 。
3、并发
Python没有提供内置的并发机制 , 而Go有内置的并发机制 。
4、类型化
Python是动态类型语言,而Go是一种静态类型语言,它实际上有助于在编译时捕获错误,这可以进一步减少生产后期的严重错误 。
5、安全性
Python是一种强类型语言,它是经过编译的,因此增加了一层安全性 。Go具有分配给每个变量的类型,因此 , 它提供了安全性 。但是,如果发生任何错误,用户需要自己运行整个代码 。
6、管理内存
Go允许程序员在很大程度上管理内存 。而,Python中的内存管理完全自动化并由Python VM管理;它不允许程序员对内存管理负责 。
7、库
与Go相比 , Python提供的库数量要大得多 。然而 , Go仍然是新的 , 并且还没有取得很大进展 。
8、速度:
Go的速度远远超过Python 。
go语言select的作用Go里面提供了一个关键字select , 通过select可以监听channel上的数据流动 。
select的用法与switch语言非常类似,由select开始一个新的选择块 , 每个选择条件由case语句来描述 。
与switch语句相比 , select有比较多的限制,其中最大的一条限制就是每个case语句里必须是一个IO操作 , 大致的结构如下:
在一个select语句中,Go语言会按顺序从头至尾评估每一个发送和接收的语句 。
如果其中的任意一语句可以继续执行(即没有被阻塞),那么就从那些可以执行的语句中任意选择一条来使用 。
如果没有任意一条语句可以执行(即所有的通道都被阻塞),那么有两种可能的情况:
如果给出了default语句,那么就会执行default语句 , 同时程序的执行会从select语句后的语句中恢复 。
如果没有default语句 , 那么select语句将被阻塞,直到至少有一个通信可以进行下去
有时候会出现goroutine阻塞的情况 , 那么我们如何避免整个程序进入阻塞的情况呢?我们可以利用select来设置超时 , 通过如下的方式实现:
select总结:
作用: 用来监听 channel 上的数据流动方向 。读?写?
select实现fibonacci数列:
没有类,C语言有结构体 , 那么Go的结构体有什么特别之处? Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念 。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性 。
自定义类型
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型 。
自定义类型是定义了一个全新的类型 。我们可以基于内置的基本类型定义,也可以通过struct定义 。例如:
通过Type关键字的定义 , MyInt就是一种新的类型 , 它具有int的特性 。
类型别名
类型别名是Go1.9版本添加的新功能 。
类型别名规定:TypeAlias只是Type的别名 , 本质上TypeAlias与Type是同一个类型 。就像一个孩子小时候有小名、乳名 , 上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人 。
推荐阅读
- html5获取另一页面的数据库,获取页面的html元素
- c语言在计算机中的工作过程,c语言的工作流程
- chatgpt对我国的影响,pheic对我国的影响
- 直播时全程录屏怎么录,如何直播时录屏
- linux命令api调用 linux调用接口命令
- 视频录制用什么音乐,怎样录制自己的音乐视频
- 视频号主播怎么引私域流量,视频号直播如何推广
- ppt如何增加作品交互性,ppt如何增加作品交互性动画
- vue与php对接数据 vue+php+mysql