什么是与C ++中的assert()等效的Go?

时间:2017-11-29 17:26:14

标签: go

我正在寻找Go中的条件检查,它可以在C ++中终止程序执行,如assert

2 个答案:

答案 0 :(得分:7)

评论者提到go does not have assertions

go中可比较的替代方案是built in function panic(...),由条件选择:

if condition {
  panic(err)
}

article titled "Defer, Panic, and Recover"也可能提供信息。

答案 1 :(得分:0)

我实际上使用了一个小助手:

var query = "mimeType='application/vnd.google-apps.folder' ";
query += "and name='$folderName' "; // folderName = "FolderC"
query += "and '${parentFolder.id}' in parents";

然后在使用中:

func failIf(err error, msg string) {
  if err != nil {
    log.Fatalf("error "+msg+": %v", err)
  }
}

发生故障时

db, err := sql.Open("mysql", "my_user@/my_database")
defer db.Close()
failIf(err, "connecting to my_database")