「數組長度不為空時出現「panic: 運行時錯誤:索引超出範圍」
分析
分析分析
分析
分析分析
由於存取超出允許範圍的索引,提供的Go 程式碼遇到運行時錯誤。理解切片
Go 切片是數組段的描述符,它包含指向數組的指針、段的長度及其容量(段的最大長度)。 ([]string, 0, 4) 與make([]string, 4)make 函數初始化並指派切片result := make。為0、容量為4 的切片,而result := make([]string, 4) (或其等效result := []string{"", "", "" , ""}) 初始化一個長度和容量皆為4 的切片。 0] 將導致執行時間錯誤,相反, result := make([]string, 4) 有四個字串元素,允許存取result[0]、result[1]、 result[2] 和result[3]。
<code class="go">package main import "fmt" func main() { fmt.Println(myFunc("Political srt")) } func myFunc(input string) []string { strs := strings.Fields(input) result := make([]string, 0) // Initialize with length 0 and append as needed for _, s := range strs { if strings.ContainsAny(s, "eaiu") { result = append(result, s) // Append to the result slice } } return result }</code>程式碼的解在myFunc 函數中,您使用有問題的結果:= make([]string , 0, 4) 初始化。程式碼需要附加元素,您應該考慮使用result := make([]string, 0) 並使用append 函數附加元素。 4),取決於您的特定要求。
以上是當陣列長度不為空時,為什麼我的 Go 程式碼會拋出「panic: runtime error: index out of range」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!