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"]

結論

我們使用兩種方法執行了從陣列中刪除空元素的程式。在第一種方法中,我們使用輔助函式方法刪除陣列元素;在第二個示例中,我們在外部函式中使用了指標方法,其中陣列作為指標傳遞,選擇器作為引數傳遞。兩種情況下都獲得了相似的輸出。因此,程式成功執行。

更新於:2023年2月13日

瀏覽量:1000+

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告