为了账号安全,请及时绑定邮箱和手机立即绑定

编写好的 Golang 代码

编写好的 Golang 代码

Go
海绵宝宝撒 2021-10-18 10:24:57
我正在掌握 Golang 的做事方式。我将非常感谢任何可能在以下方面提供帮助的人。首先是一些示例代码package mainimport (    "log"    "os")func logIt(s string) {    f, _ := os.OpenFile("errors.log", os.O_RDWR|os.O_CREATE|os.O_APPEND,        0666)    defer f.Close()    log.SetOutput(f)    log.Println(s)}type iAm func(string)func a(iam string) { logIt(iam + " A") }func b(iam string) { logIt(iam + " B") }func c(iam string) { logIt(iam + " C") }var funcs = map[string]iAm{"A": a, "B": b, "C": c}func main() {    funcs["A"]("Je suis")    funcs["B"]("Ich bin")    funcs["A"]("Yo soy")    funcs["D"]("Soy Yo")}说明我正在将我所有的日志输出传送到一个文件中,以便我以后可以对其进行监控。这是正确的渠道方式吗?我想根据用户输入确定在运行时调用的正确函数。为此,我将函数打包为 Golang 映射 - 在 PHP 中,我会使用关联数组。这有效。然而,这是一种有效的做事方式吗?最后,您会注意到我的地图中实际上没有D键。最后一次 funcs 调用导致 Go 出现抖动。在另一种语言中,我会将这些调用包装在 try... 块中并避免该问题。从我所了解的围棋理念是检查密钥的有效性第一和恐慌,而不是试图盲目地使用该密钥。那是对的吗?我是 Go 新手,所以我可能有我使用的其他语言的包袱。在我看来,以先发制人的方式处理异常情况(在使用之前检查密钥)既不聪明也不高效。对?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信