page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6231 次

3096 个回答

0 赞同

如何判断 2 个字符串切片(slice) 是相等的?

go 语言中可以使用反射 reflect.DeepEqual(a, b) 判断 a、b 两个切片是否相等,但是通常不推荐这么做,使用反射非常影响性能。 通常采用的方式如下,遍历比较切片中的每一个元素(注意处理越界的情况)。 func StringSliceEqualBCE(a, b []string) bool {if len(a) != len(b) {return false }if (a == nil) != (b == n...

回答于 2021-09-11 14:24

0 赞同

如何交换 2 个变量的值?

a, b := "A", "B"a, b = b, afmt.Println(a, b) // B A

回答于 2021-09-11 14:23

0 赞同

Go 语言 tag 的用处?

tag 可以理解为 struct 字段的注解,可以用来定义字段的一个或多个属性。框架/工具可以通过反射获取到某个字段定义的属性,采取相应的处理方式。tag 丰富了代码的语义,增强了灵活性。

回答于 2021-09-11 14:23

0 赞同

defer 的执行顺序?

多个 defer 语句,遵从后进先出(Last In First Out,LIFO)的原则,最后声明的 defer 语句,最先得到执行。 •defer 在 return 语句之后执行,但在函数退出之前,defer 可以修改返回值。

回答于 2021-09-11 14:23

0 赞同

Go 支持默认参数或可选参数吗?

Go 语言不支持可选参数(python 支持),也不支持方法重载(java支持)。

回答于 2021-09-11 14:22

0 赞同

如何判断 map 中是否包含某个 key ?

if val, ok := dict["foo"]; ok {     //do something here } dict["foo"] 有 2 个返回值,val 和 ok,如果 ok 等于 true,则说明 dict 包含 key "foo",val 将被赋予 "foo" 对应的值。

回答于 2021-09-11 14:22

0 赞同

什么是 rune 类型?

ASCII 码只需要 7 bit 就可以完整地表示,但只能表示英文字母在内的128个字符,为了表示世界上大部分的文字系统,发明了 Unicode, 它是ASCII的超集,包含世界上书写系统中存在的所有字符,并为每个代码分配一个标准编号(称为Unicode CodePoint),在 Go 语言中称之为 rune,是 int32 类型的别名。 Go 语言中,字符串的...

回答于 2021-09-11 14:22

0 赞同

如何高效地拼接字符串?

Go 语言中,字符串是只读的,也就意味着每次修改操作都会创建一个新的字符串。如果需要拼接多次,应使用 strings.Builder,最小化内存拷贝次数。 var str strings.Builder for i := 0; i < 1000; i++ {     str.WriteString("a") } fmt.Println(str.String())

回答于 2021-09-11 14:22

0 赞同

什么是协程(Goroutine)?

Goroutine 是与其他函数或方法同时运行的函数或方法。Goroutines 可以被认为是轻量级的线程。与线程相比,创建 Goroutine 的开销很小。Go应用程序同时运行数千个 Goroutine 是非常常见的做法。

回答于 2021-09-11 14:21

0 赞同

Go 有异常类型吗?

Go 没有异常类型,只有错误类型(Error),通常使用返回值来表示异常状态。 f, err := os.Open("test.txt") if err != nil {     log.Fatal(err) }

回答于 2021-09-11 14:21