场景
将字符数组a复制到一个新的字符数组b中
解决方案
package main
import "fmt"
func main() {
a := []string{"go", "java", "cpp"}
b := CopyIt(a)
fmt.Println(b)
}
func CopyIt(raw []string) []string {
r := make([]string, len(raw))
for i, v := range raw {
r[i] = v
}
return r
}
代码冗余,not elegant ! 利用返回值命名,免去新数组的声明过程。
func CopyIt1(raw []string) (r []string) {
for i, v := range raw {
r[i] = v
}
return r
}
使用append避免声明新变量i
func CopyIt2(raw []string) (r []string) {
for _, v := range raw {
r = append(r, v)
}
return r
}
使用语法糖进一步简化append
func CopyIt3(raw []string) (r []string) {
r = append(r, raw...)
return r
}
使用copy,一步到位!
func CopyIt4(raw []string) (r []string) {
copy(r, raw)
return r
}
代码仓库
一些质量较高的个人项目推荐
用于go的api项目的快速开发模板
Standard Toolkit for Go fast development / Go 快速开发标准工具包
基于vite+vue3+gin搭建的开发基础平台,集成多项开发必备功能。