1.Printf(),Sprintf(),FprintF() 都是格式化输出,有什么不同?
虽然这三个函数,都是格式化输出,但是输出的目标不一样
Printf 是标准输出,一般是屏幕,也可以重定向。
Sprintf()是把格式化字符串输出到指定的字符串中。
Fprintf()是吧格式化字符串输出到文件中。
2、Golang 使用什么数据类型?
Golang 使用以下类型:
3、Go 程序中的包是什么?
包 (pkg) 是 Go 工作区中包含 Go 源文件或其他包的目录。源文件中的每个函 数、变量和类型都存储在链接包中。每个 Go 源文件都属于一个包,该包在文 件顶部使用以下命令声明:
package <packagename>
您可以使用以下方法导入和导出包以重用导出的函数或类型:
import <packagename>
Golang 的标准包是 fmt,其中包含格式化和打印功能,如 Println().
4、Go 支持什么形式的类型转换?将整数转换为浮点数。
Go 支持显式类型转换以满足其严格的类型要求。
i := 55 //int
j := 67.8 //float64
sum := i + int(j) //j is converted to int
5、什么是 Goroutine?你如何停止它?
一个 Goroutine 是一个函数或方法执行同时旁边其他任何够程采用了特殊的Goroutine 线程。Goroutine 线程比标准线程更轻量级,大多数 Golang 程序 同时使用数千个 g、Goroutine。
要创建 Goroutine,请 go 在函数声明之前添加关键字。
go f(x, y, z)
您可以通过向 Goroutine 发送一个信号通道来停止它。Goroutines 只能在被 告知检查时响应信号,因此您需要在逻辑位置(例如 for 循环顶部)包含检 查。
package main
func main() {
quit := make(chan bool)
go func() {
for {
select {
case <-quit:
return
default:// ...
}
}
}()
// ...
quit <- true }
6、 如何在运行时检查变量类型?
类型开关是在运行时检查变量类型的最佳方式。类型开关按类型而不是值来评 估变量。每个 Switch 至少包含一个 case,用作条件语句,和一个defaultcase,如果没有一个 case 为真,则执行。
7、Go 两个接口之间可以存在什么关系?
如果两个接口有相同的方法列表,那么他们就是等价的,可以相互赋值。如果 接口 A 的方法列表是接口 B 的方法列表的自己,那么接口 B 可以赋值给接口A。接口查询是否成功,要在运行期才能够确定。
8、Go 当中同步锁有什么特点?作用是什么
当一个 Goroutine(协程)获得了 Mutex 后,其他 Gorouline(协程)就只能乖 乖的等待,除非该 gorouline 释放了该 MutexRWMutex 在 读锁 占用的情况下, 会阻止写,但不阻止读 RWMutex 在 写锁 占用情况下,会阻止任何其他goroutine(无论读和写)进来,整个锁相当于由该 goroutine 独占 同步锁的作用是保证资源在使用时的独有性,不会因为并发而导致数据错乱, 保证系统的稳定性。
9、Go 语言当中 Channel(通道)有什么特点,需要注意什么?
如果给一个 nil 的 channel 发送数据,会造成永远阻塞如果从一个 nil 的channel 中接收数据,也会造成永久爱阻塞给一个已经关闭的 channel 发送数 据, 会引起 pannic 从一个已经关闭的 channel 接收数据, 如果缓冲区中为 空,则返回一个零值。
10、Go 语言当中 Channel 缓冲有什么特点?
无缓冲的 channel 是同步的,而有缓冲的 channel 是非同步的。
11、Go 语言中 cap 函数可以作用于那些内容?
cap 函数在讲引用的问题中已经提到,可以作用于的类型有:
12、go convey 是什么?一般用来做什么?
13、Go 语言当中 new 和 make 有什么区别吗?
new 的作用是初始化一个纸箱类型的指针 new 函数是内建函数,函数定义:
func new(Type) *Type
14、Go 语言中 make 的作用是什么?
make 的作用是为 slice, map or chan 的初始化 然后返回引用 make 函数是内 建函数,函数定义:
func make(Type, size IntegerType) Type
make(T, args)函数的目的和 new(T)不同 仅仅用于创建 slice, map, channel 而且返回类西行是实例
15、与其他语言相比,使用 Go 有什么好处?