亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Go 編譯器不將未聲明的變量視為錯誤?

為什么 Go 編譯器不將未聲明的變量視為錯誤?

Go
慕少森 2021-06-27 13:56:10
我一直在編寫一個測試程序來幫助學習 Go。這樣做時,我遇到了一些我認為編譯器應該檢測到錯誤的情況。我遇到了另一個類似的情況,所以我想我應該問一下為什么這種情況不被視為錯誤。示例情況:if oError = rwfile.WriteLines(asParams, sParamsFilename); oError != nil {    fmt.Printf("Error on write to file Params. Error = %s\n", oError)} else {    println("Params file write OK")}在上面的示例中,無論是否聲明了變量“oError”,編譯器都不會指示錯誤。如果該行在未聲明變量時包含以下內容(如預期),它也可以工作:if oError := rwfile.WriteLines(asParams, sParamsFilename); oError != nil {如果我聲明變量“oError”,則“:=”不起作用(如預期)?!皉wfile”是我寫的一個包,有問題的函數如下:func WriteLines(asBuff []string, sFilename string) error { // write text file如果我在寫入文件時創建錯誤,并使用“=”而不聲明變量“oError”,則程序正常工作并檢測到非零的“oError”變量。那么,當 oError 未聲明為變量時,為什么上面的“=”不被視為錯誤?Go 版本為 go1.1.2 Windows/386。
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

它與實際問題無關,但 `go fmt` 確實可以幫助跟蹤大型程序中的錯誤內容。

此外,遵循樣式指南確實有幫助:使用簡潔的代碼樣式(沒有匈牙利變量名!我花了很長時間才習慣短名稱)和短文件:2Kloc 文件可能太大了。非常值得瀏覽標準庫源代碼,看看好的 Go 代碼是什么樣的


查看完整回答
反對 回復 2021-07-05
  • 2 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號