Go 中條件語句中的變數作用域
當瀏覽 Go 中變數作用域的細微差別時,特別是在條件 if在語句中,它可以是在使用變數時遇到無法在語句內定義變數的情況,這令人困惑
考慮以下情況:
if len(array1) > len(array2) { new1 := make([]string, 0, len(array1)) // Use new1... } else { new1 := make([]string, 0, len(array2)) // Use new1... }
此程式碼會引發錯誤,因為new1 無法在if 區塊內聲明。然而,在區塊之前創建它會帶來問題,因為它的大小取決於比較的結果。
解決方案
最佳解決方法是在if 之前聲明new1在語句中阻止並利用make:
var new1 []string if len(array1) > len(array2) { new1 = make([]string, 0, len(array1)) // Use new1... } else { new1 = make([]string, 0, len(array2)) // Use new1... }
這允許創建new1 ,其大小基於條件結果,而在if 區塊之外保持其可訪問性。
以上是如何在 Go 的條件 if 語句中正確宣告和使用變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!