Go語言程式:移除陣列中所有空元素
本教程將講解如何從陣列中移除所有空元素。實際上,有時陣列中存在空字串,我們需要將其移除。在本教程中,我們將學習如何使用非常簡單的方法移除這些字串。
方法一:使用輔助函式方法
在這個方法中,我們將學習如何使用輔助函式方法移除空元素。陣列將作為函式的引數,輸出將使用Go語言的print語句列印到控制檯。
語法
func append(slice, element_1, element_2…, element_N) []T
append函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。
演算法
步驟1 − 在程式中宣告一個package main並匯入fmt。
步驟2 − 建立一個名為delete_empty的函式,該函式的引數是一個字串陣列,需要從中刪除空字串。
步驟3 − 在函式內建立一個數組,用於儲存來自原始陣列的非空值。
步驟4 − 執行一個迴圈直到原始陣列的末尾,並檢查條件:如果字串不等於空字串,則將原始陣列的值新增到新陣列中。
步驟5 − 繼續此步驟5,直到迴圈終止,迭代完成後返回arr。
步驟6 − 返回的陣列將在呼叫函式的main函式中列印。
步驟7 − 然後使用fmt.Println()函式執行,這是Go語言中的print語句。這裡的ln表示連續的下一行。
示例
使用輔助函式方法從陣列中移除所有空元素的Go語言程式
package main import ( "fmt" ) func delete_empty(strarr []string) []string { var arr []string for _, str := range strarr { if str != "" { arr = append(arr, str) } } return arr } func main() { strarr := []string{"Abc", "Xyz", ""} fmt.Println("The array before removal of empty element is:", strarr) fmt.Println("The array after removal of empty element is:") fmt.Println(delete_empty(strarr)) }
輸出
The array before removal of empty element is: [Abc Xyz ] The array after removal of empty element is: [Abc Xyz]
方法二:使用指標方法
在這個方法中,我們將學習如何使用指標和JSON資料移除空元素。這裡建立了兩個陣列,其中一個指向另一個。最終,arr引用arr2。輸出使用fmt.Println()函式列印,這是Go語言中的print語句。
語法
func append(slice, element_1, element_2…, element_N) []T
append函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。
演算法
步驟1 − 在程式中宣告一個package main並匯入fmt包和型別為字串的jsondata陣列。
步驟2 − 建立一個函式,其中arr指向json資料,以及一個引數為字串的delete函式,該函式從main函式中呼叫。
步驟3 − 在函式中用jsondata宣告arr2,儲存在arr2中的值將被arr引用,最後arr將列印到控制檯。
步驟4 − 執行一個迴圈直到arr的長度,並檢查字串是否不等於選擇器,將字串新增到arr2中。
步驟5 − 迴圈終止後,arr將透過指標引用arr2,並且從main函式中將使用帶有arr括號的fmt.Println()函式列印輸出。
示例
使用指標方法從陣列中移除所有空元素的Go語言程式
package main import "fmt" type jsondata []string func (arr *jsondata) delete(selector string) { var arr2 jsondata for _, str := range *arr { if str != selector { arr2 = append(arr2, str) } } *arr = arr2 } func main() { arr := jsondata{"foo", "", "bar", ""} fmt.Println("The array before deletion is:") fmt.Println(arr) arr.delete("") fmt.Println("The array after deletion is:") fmt.Printf("%q", arr) }
輸出
The array before deletion is: [foo bar ] The array after deletion is: ["foo" "bar"]
結論
我們使用兩種方法執行了從陣列中刪除空元素的程式。在第一種方法中,我們使用輔助函式方法刪除陣列元素;在第二個示例中,我們在外部函式中使用了指標方法,其中陣列作為指標傳遞,選擇器作為引數傳遞。兩種情況下都獲得了相似的輸出。因此,程式成功執行。