教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang-特点

Golang-特点

发布时间:2021-04-28   编辑:jiaochengji.com
教程集为您提供Golang-特点等资源,欢迎您收藏本站,我们将为您提供最新的Golang-特点资源

1、不支持继承。结构体可以实现类似功能

2、面向对象?:yes and no

3、与java、python一样,内置gc,不需要我们手动创建、释放变量在内存中的占用。区别是只有go支持指针对内存的直接访问

python几乎全是引用传递,而go,统一采用值传递,但提供指针机制,用户可以自己选择数据的传递方式。

在编写go时,要充分考虑指针,提高数据访问效率(尤其是传递数据较大时),减少内存复制

 

4、错误处理机制,抛弃冗长繁琐的try-catch-finally,当然,不少开发者认为try-catch机制更好,在未来go发展也可能会加入try-catch机制。

 

5、并发控制:与主流语言通过共享内存实现。Go采用CSP模式。

两个独立的并发实体通过共享通讯Channel(管道)进行通信得并发模式

(tips, python并发机制:

Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。

子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。

有了fork调用,一个进程在接到新任务时就可以复制出一个子进程来处理新任务,常见的Apache服务器就是由父进程监听端口,每当有新的http请求时,就fork出子进程来处理新的http请求。)

 

6、Goroutine调度机制

goroutine的调度机制与java、python不同,前者是多对多(m:n)的对应关系,且不是由内核直接调度的线程机制效率高,但因为goroutine的切换不设计内核级切换,所以代价小的多。后两者线程模型是1:1的关系

并发只需一个:go function()  即可

 

 

7、静态类型:

因为变量类型已经定义好的,所以可以编译为静态文件,不需要边解释边执行(python就是边解释边执行,因为动态的特性,没有执行到的地址,解释器也不确定是什么值),所以运行效率会很快

 

8、go代码中可以不写; 编译器在编译时会自动加上,也轻微提高了开发者的效率

 

如果对你有帮助,可否在文章右侧点个赞再走呢~~

 

本文为原创,转载请注明出处

 

golang-包与基本数据类型

python魔法方法(部分)

python complex函数

python避坑篇

python部分高级用法

python开发手册

python内置函数(下)

python内置属性,函数

python异常处理

python lambda函数

 

到此这篇关于“Golang-特点”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
GO语言使用之面向对象编程(1)——Golang语言面向对象编程说明
一款golang style语法的golang orm库
学习golang开始前的准备工作
数据结构和算法(Golang实现)(1)简单入门Golang-前言
关于Golang的介绍
golang的goroutine
Go语言 几个亟待解决的Go语言问题
Golang import 三种特殊形式:下划线、点、别名-from-csdner-9命怪猫
Golang 声明创建结构体 示例用法特点
go语言特点

[关闭]
~ ~