重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用go语言的好处: go语言的设计是务实的, go在针对并发上进行了优化, 并且支持大规模高并发, 又由于单一的码格式, 相比于其他语言更具有可读性, 在垃圾回收上比java和Python更有效, 因为他是和程序同时执行的.
创新互联专注于西吉企业网站建设,成都响应式网站建设公司,成都做商城网站。西吉网站建设公司,为西吉等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
1. 进程, 线程, 协程的区别, 协程的优势
2. 讲一下GMP模型(重点)
3. Go的GC, 混合写屏障(重点)
4. go的Slice和数组的区别, slice的扩容原理(重点)
5. 讲一下channel,实现原理(重点)
6. 讲一下Go的Map的实现原理, 是否线程安全, 如何实现安全(重点)
7. new 和 make 的区别
8. 说一下内存逃逸
9. 函数传指针和传值有什么区别
10. goroutine之间的通信方式
11. 测试是怎么做的(单元测试, 压力测试)
12. 堆和栈的区别
仅为个人阅读时遇到的困惑的理解
2021.6.16
《GO语言圣经》-《GO程序设计语言》
P3
在命令行中运行 go run main.go 123
会输出 123
在命令行中分别输入(注意空格)
(1) go run main.go 123
和
(2) go run main.go 1 2 3
(1)中输出结果
第一行是go命令的位置
第二行是for循环内的“一个参数”的结果
第三行是for循环外的最终结果
(2)中输出结果
第二行是for循环内“第一个参数”的结果
第三行是for循环内“第一个和第二个参数”的结果
以此类推。
(3)如果空格大于一个,仍会以一个空格输出
这时我才理解到书中所讲述的:
也就是以空格分隔代表新的一个参数。
仅为个人阅读时遇到的困惑的理解,希望友善讨论
2021.6.25
《GO语言圣经》-《GO程序设计语言》
P5
在命令行中运行
go run main.go 一 二三 四
得到的结果
在命令行中运行
go run main.go 一 二三 四
得到的结果
range 获取一个范围,
有两个返回值,在本例中分别是 i 和 arg 。
第一个返回值 i 总是从0开始的,和 range 取范围的值(也就是本例中的 os.Args )无关。(也就是本例中 os.Args[1:] 虽然是从 os.Args 的1值开始取的,但是在 range 中还是0)。
第二个返回值 arg 是切片的结果。
我理解的: range 将 os.Args 切成一个数组,先返回数组下标,再返回数组内容。
《Go程序设计语言中文版》百度网盘pdf最新全集下载:
链接:
?pwd=0cii 提取码:0cii
简介:本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的指南。本书共13章,主要内容包括:Go的基础知识、基本结构、
基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。
本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读
首先说个人的结论:go和Java的发展各有侧重,go完全取代Java成为下一个企业级开发语言还有很长的路要走,但完全是有可能的。理由如下:
Java拥有丰富的开源资源,成熟的产品框架,数量庞大的程序员队伍以及活跃的社区
go最初是google为了解决自己的项目而创立的基于C语言开发出的语言,虽然有社区的支持,但目前发展的时间远远不如java,需要更多的时间积累 框架不够成熟和丰富也是go的一大弱势。
go相比Java的优势: 1.Go语言语法简单,包含了类C语法。更容易开发出快速上手的高性能应用。 2.Go语言编译效率高。Go的快速编译时间是一个主要优势。 3.自由高效。Go天生支持高并发环境(这也是google设计Go的初衷之一),在高并发环境中Go拥有着巨大的优势。 4.强大的标准库。Go的标准库已经非常稳定,lib库也在不断地扩充和完善中 5.部署方便(基于C语言的特性是的Go语言的二进制文件可以运行于任何一种操作系统,天生的跨平台特性,更优于Java)
Go语言作为一个新兴的编程语言,因其最初的商业开源的特性,有Google的加持,加上现在区块链技术中Go项目所占比例逐渐增加,因而在后续区块链的产业中,Go语言的比重会逐渐压过Java。因而Go语言完全有可能在新一轮的科技产业发展中成为企业开发项目的首选语言