前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五个我最近在 Go 里学到的小技巧

五个我最近在 Go 里学到的小技巧

作者头像
crossoverJie
发布2024-07-03 16:16:07
1020
发布2024-07-03 16:16:07
举报
文章被收录于专栏:crossoverJiecrossoverJie

原文链接:https://medium.com/@andreiboar/5-small-tips-i-recently-learned-in-go-cf52d50cf129

让编译器计算数组数量

我们在 Go 通常很少使用数组 arrays,一般使用切片 Slice 来代替;

但是当你需要使用的时候,如果你对需要指定数量大小感到很烦时可以使用 [...] 让编译器自动帮我们计算数组大小:

代码语言:javascript
复制
package main  
  
import "fmt"  
  
func main() {  
arr := [3]int{1, 2, 3}  
sameArr := [...]int{1, 2, 3} // Use ... instead of 3  
  
// Arrays are equivalent  
fmt.Println(arr)  
fmt.Println(sameArr)  
}

使用 go run . 替换 go run main.go

每当我用 Go 写第一行代码时,我都习惯于开始写 main.go:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    sayHello()
}

func sayHello() {
    fmt.Println("Hello!")
}  

但是当 main.go 变得越来越大时,我喜欢把一些结构体移动到新的文件里,还是在 main 这个包中。

main.go:

代码语言:javascript
复制
package main  
  
func main() {  
 sayHello()  
}

say_hello.go:

代码语言:javascript
复制
package main  
  
import "fmt"  
  
func sayHello() {  
 fmt.Println("Hello!")  
}

此时使用 go run main.go 将会得到以下的错误:

代码语言:javascript
复制
# command-line-arguments  
./main.go:4:2: undefined: sayHello

此时可以使用 go run . 来解决这个问题。

使用下划线让你的数字变得更易读

你知道可以使用下划线使得你的长数字更易读吗?

代码语言:javascript
复制
package main

import "fmt"

func main() {
    number := 10000000
    better := 10_000_000

    fmt.Println(number == better)
} 

可以在同一个包下有不同的测试包

在 Go 中我通常认为一个目录下只能有一个包,但也不是完全正确的。

假设你有一个包名为:yourpackage 此时你可以还可以在同一个目录下创建一个名为 yourpackage_test 的包,同时在这个包里编写你的测试代码。

这样做的好处是,那些没有被 exporter 的函数在 yourpackage_test 包下是不能直接访问的,确保测试的是被暴露的函数。

多次传递相同参数的简单方法

在使用字符串格式化函数时,我总是觉得必须重复一个多次使用的参数很烦人:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    name := "Bob"
    fmt.Printf("My name is %s. Yes, you heard that right: %s\n", name, name)
} 

还好还有更简便的方法,这样只需要传递一次参数:

代码语言:javascript
复制
package main  
  
import "fmt"  
  
func main() {  
 name := "Bob"  
 fmt.Printf("My name is %[1]s. Yes, you heard that right: %[1]s\n", name)  
}

在这个 Twitter 里发现的:

希望你今天学到了一些新东西,最近有没有发现一些你从来不知道的 Golang 小技巧?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 crossoverJie 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 让编译器计算数组数量
  • 使用 go run . 替换 go run main.go
  • 使用下划线让你的数字变得更易读
  • 可以在同一个包下有不同的测试包
  • 多次传递相同参数的简单方法
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档