在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Golang就是所谓的go语言。是Google开发的一种静态强型、编辑型、并发型,并且由垃圾回收功能的编程语言。他姐姐与V语言,但是对变量的声明是有所不同的。目前go语言被定义为区块链开发语言。现在市面上已经有很多机构推出go语言培训,像博学谷go语言与区块链课程已经有很多同学报名学习了。在这里将博学谷老师整理的部分golang面试题与大家分享一下。
1. 在go语言中,new和make的区别?
new 的作用是初始化一个指向类型的指针(*T)。
new函数是内建函数,函数定义:func new(Type) *Type。
使用new函数来分配空间。传递给new 函数的是一个类型,不是一个值。返回值是 指向这个新分配的零值的指针。
make 的作用是为 slice,map 或 chan 初始化并返回引用(T)。
make函数是内建函数,函数定义:func make(Type, size IntegerType) Type。
第一个参数是一个类型,第二个参数是长度。
返回值是一个类型。
make(T, args)函数的目的与new(T)不同。它仅仅用于创建 Slice, Map 和 Channel,并且返回类型是 T(不是T*)的一个初始化的(不是零值)的实例。
2. 在go语言中,Printf()、Sprintf()、Fprintf()函数的区别用法是什么?
都是把格式好的字符串输出,只是输出的目标不一样:
Printf(),是把格式字符串输出到标准输出(一般是屏幕,可以重定向)。
Printf() 是和标准输出文件(stdout)关联的,Fprintf 则没有这个限制。
Sprintf(),是把格式字符串输出到指定字符串中,所以参数比printf多一个char*。那就是目标字符串地址。
Fprintf(), 是把格式字符串输出到指定文件设备中,所以参数笔printf多一个文件指针FILE*。主要用于文件操作。Fprintf()是格式化输出到一个stream,通常是到文件。
3. 说说go语言中,数组与切片的区别?
(1) 数组
数组是具有固定长度且拥有零个或者多个相同数据类型元素的序列。
数组的长度是数组类型的一部分,所以[3]int 和 [4]int 是两种不同的数组类型。
数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变 ;
数组是值传递;
数组是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值。在初始化后长度是固定的,无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。
数组定义:var array [10]int
var array = [5]int{1,2,3,4,5}
(2)切片
切片表示一个拥有相同类型元素的可变长度的序列。
切片是一种轻量级的数据结构,它有三个属性:指针、长度和容量。
切片不需要指定大小;
切片是地址传递;
切片可以通过数组来初始化,也可以通过内置函数make()初始化 .初始化时len=cap,在追加元素时如果容量cap不足时将按len的2倍扩容;
切片定义:var slice []type = make([]type, len)
4. 解释以下命令的作用?
go env: #用于查看go的环境变量
go run: #用于编译并运行go源码文件
go build: #用于编译源码文件、代码包、依赖包
go get: #用于动态获取远程代码包
go install: #用于编译go文件,并将编译结构安装到bin、pkg目录
go clean: #用于清理工作目录,删除编译和安装遗留的目标文件
go version: #用于查看go的版本信息
5. 说说go语言中的协程?
协程和线程都可以实现程序的并发执行;
通过channel来进行协程间的通信;
只需要在函数调用前添加go关键字即可实现go的协程,创建并发任务;
关键字go并非执行并发任务,而是创建一个并发任务单元;
现在区块链在代币、信息共享、鉴证证明、数字资产、物流链、供应链金融、跨境支付、游戏等诸多领域已经取得了较为广泛的应用。相比在区块链技术不断发展中。会促使互联网健全。现在区块链并没有大范围的推广应用,对于求职者来说是一个非常好的机会。如果你还没有学习这方面的知识,可以通过博学谷go语言与区块链技术课程学习。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
区块链炒币能赚钱吗?揭秘炒币本质
随着区块链技术的火爆,炒币也成为一种时兴的赚钱手段。看似神秘的炒币,说白了就是一种投资行为。当然既然是投资,那么风险还是很大的,一般的普通老百姓很难成功。但它丰厚的利润还是让不少人,前仆后继的加入炒币的大军。那么问题来了,区块链炒币能赚钱吗?下面就随着小编一起揭开炒币的本质,看看值不值得大家倾力去投资。
3584
2019-11-28 19:21:04
为什么学区块链很有优势?
为什么学区块链很有优势?IT行业领域发展趋势预测,近十年,IT行业发展迅猛,IT行业是许多业内业外人共同关注的话题,我们一起来看看IT行业有哪些发展趋势吧。
3117
2020-06-04 16:44:10
学习区块链可以干什么?
我们经常听到区块链,那么学习区块链可以干什么呢?区块链是一个基于密码学原理而不基于信任机制,使得达成一致的双方直接交易,并且公布给所有的见证人。传统互联网上的交易都需要借助可信赖的第三方机构来处理电子支付信息,交易双方信赖第三方机构。
3593
2020-06-18 15:42:09
区块链要学多久才能从入门到精通?
区块链要学多久才能从入门到精通?学习是潜移默化的过程,学多久取决于你对计算机知识等相关专业的背景,区块链用的技术其实都是现有技术的组合。分布式存储,非对称加密,哈希算法,博弈论,这些都要熟悉和了解。
4341
2020-07-24 16:59:18
区块链公开课有哪些推荐?
许多通过书籍和教材自学区块链的小伙伴,纷纷反映学习效果差,很多知识点通过看书无法理解。为了帮助大家更好的学习区块链技术,本文将为大家推荐一些优质的区块链公开课,在博学谷官网就可以随之随地在线观看并学习,下面一起来看看课程详情吧!
4040
2020-07-28 17:03:49