您现在的位置是:课程教程文章
go与python哪个简单
2023-12-18 23:07课程教程文章 人已围观
-
Testin手机云——使你的App自动化测试变得
Testin手机云——使你的App自动化测试变得特邀讲师: 孙佩瑶:Testin 资深自动化测试顾问 从事测试行业5年,熟悉各种测... -
gp人工智能计算机视觉训练营/唐宇迪/CV
gp人工智能计算机视觉训练营/唐宇迪/CV... -
Python 处理 Excel
Python 处理 Excel我们和其他培训机构那种 大锅饭 一起上课的方式 不同。 我们是小班教学,大... -
运维开发实战(2):Django3.x Web开发【2
运维开发实战(2):Django3.x Web开发【2适合运维人员的“DjangoWeb开发”课程,通俗易懂,直击目标!! 学完本课程收...
相比于Python的40个特性,Go只有31个,可以说Go在语言设计上是相当克制的。比如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。
但是Go的特点也很鲜明,比如,它拥有协程、自动垃圾回收、包管理系统、一等公民的函数、栈空间管理等。
Go作为静态类型语言,保证了Go在运行效率、内存用量、类型安全都要强于Python和Erlang。
Go的数据类型也更加丰富,除了支持表、字典等复杂的数据结构,还支持指针和接口类型,这是Python和Erlang所没有的。特别是接口类型特别强大,它提供了管理类型系统的手段。而指针类型提供了管理内存的手段,这让Go进入底层软件开发提供了强有力的支持。
Go在面对对象的特性支持上做了很多反思和取舍,它没有类、虚函数、继承、泛型等特性。Go语言中面向对象编程的核心是组合和方法(function)。组合很类似于C语言的struct结构体的组合方式,方法类似于Java的接口(Interface),但是使用方法上与对象更加解耦,减少了对对象内部的侵入。Erlang则不支持面对对象编程范式,相比而言,Python对面对对象范式的支持最为全面。
在函数式编程的特性支持上,Erlang作为函数式语言,支持最为全面。但是基本的函数式语言特性,如lambda、高阶函数、curry等,三种语言都支持。
控制流的特性支持上,三种语言都差不多。Erlang支持尾递归优化,这给它在函数式编程上带来便利。而Go在通过动态扩展协程栈的方式来支持深度递归调用。Python则在深度递归调用上经常被爆栈。
Go和Erlang的并发模型都来源于CSP,但是Erlang是基于actor和消息传递(mailbox)的并发实现,Go是基于goroutine和管道(channel)的并发实现。不管Erlang的actor还是Go的goroutine,都满足协程的特点:由编程语言实现和调度,切换在用户态完成,创建销毁开销很小。至于Python,其多线程的切换和调度是基于操作系统实现,而且因为GIL的大坑级存在,无法真正做到并行。
课程教程:go与python哪个简单上一篇:python是什么类型的语言
下一篇:没有了