golang是高级语言,是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用更易理解的方式编写程序,它为解决大型系统开发过程中的实际问题而设计,支持并发、规范统一、简单优雅,性能强大,主要目标是兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性。
本教程操作环境:windows 10系统、GO 1.20版本、Dell G3电脑。
go是高级语言。Go语言是Google公司在2009年开源的一门高级编程语言,它为解决大型系统开发过程中的实际问题而设计,支持并发、规范统一、简单优雅,性能强大;它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的go语言,java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。
Go语言是Google公司在2009年开源的一门高级编程语言,它为解决大型系统开发过程中的实际问题而设计,支持并发、规范统一、简单优雅,性能强大,被很多Go语言传道者誉为“云计算时代的C语言”。Go语言的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
Go语言有时候被描述为“C 类似语言”,或者是“21 世纪的C语言”。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。
Go的优缺点程序员的心声:如果现实世界需要我能够在几天内对一个生产系统进行原型设计、测试和部署,而且在每秒能处理比原来多5倍请求,CPU和内存的开销还都很小。我想大概只有Go语言可以胜任了。
Go语言有如下优点:
单独的二进制发布:Go项目编译会生成一个静态的可执行文件。该文件可**运行而不需要其他依赖。这种方式特别适合于云原生容器环境。
交叉编译:在任何操作系统上都可以编译在其他平台上可运行的二进制文件。比如在Mac系统上可编译出在Linux和Windows上可运行的二进制文件。垃圾回收:Go语言支持垃圾回收。相比较,C++,Rust等需要开发者自己控制。执行性能:Go非常的快。性能接近于C++。远高于Java,Python、Node。开发效率:Go语言同时具备静态语言的运行性能和动态语言的开发效率。
简单,高效:Go语言的设计哲学里就包括了简单和高效。一个典型的反例就是复杂,臃肿的Java语言。并发性:语言层面支持并发,通过协程和通道简化并发开发,提高并发性能。
丰富的标准库:Go标准库覆盖了文本,IO,网络,加密,Web服务,远程RPC,模板引擎等功能。可以调用C语言:可以调用C语言函数,进一步优化性能,复用C语言庞大的生态系统。
快速编译时间:Go的编译特别快。大家可以参考两款静态博客生成系统,Hexo(Node开发)和Hugo(Go开发)。
工程型:Go语言设计的目的就是成为一门工程语言,解决实际的工程问题。Go语言定义了开发规范,并提供了丰富的工具。使用Go语言可以编写出容易阅读和理解,容易测试、维护和扩展的程序。
Go语言有如下缺点:
缺少重量级框架。如Ruby的Rails,Python的Django,Java的Spring。
错误处理:没有异常系统。Go官方正在解决该问题。
软件包管理:很长时间以来,Go官方都没有一套软件包管理体制。直到最近,Go的1.13版本正式引入了Go Module作为官方的依赖管理工具。
不是标准的面向对象的编程模型:这个也是Go语言的一个创新。如果你是坚实的OOP的拥护者,可能会有些不适应。
golang高级语法
rune
package mainimport "fmt"//rune相当于go的char 使用utf8编码,中文占3个字节,英文一个字节func main() { s:= "ok我爱你" fmt.Println(len(s)) // 11 fmt.Println(len([]rune(s))) // 5 fmt.Println(len([]byte(s))) // 11 // str是int32类型 for i, str := range s { fmt.Printf("%d %c", i, str) fmt.Println() } // str是byte类型 for i, str := range []byte(s) { fmt.Printf("%d %x", i, str) fmt.Println() } // str是rune类型 for i, str := range []rune(s) { fmt.Printf("%d %c", i, str) fmt.Println() } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755