Go語言程式移除陣列中所有指定元素


在本教程中,我們將學習如何編寫一個 Go 語言程式來移除陣列中所有指定元素的出現。從陣列中移除出現次數意味著我們希望完全從陣列中移除該條目。

使用外部函式移除陣列中所有指定元素的出現

以下程式碼演示瞭如何使用使用者定義函式移除陣列中所有指定元素的出現。

演算法

步驟 1 − 匯入 fmt 包。

步驟 2 − 定義名為 removeOccurrence() 的函式。

步驟 3 − 在此函式中,我們檢查陣列的當前元素是否等於我們想要刪除的值。

步驟 4 − 如果不等於,則我們將該元素儲存在同一個陣列中,否則忽略該元素並重復此過程,直到整個陣列被遍歷。

步驟 5 − 一旦每個元素都被檢查,我們需要將最終陣列作為結果返回。

步驟 6 − 啟動 main() 函式。初始化一個數組併為其賦值。

步驟 7 − 在螢幕上列印陣列。

步驟 8 − 透過將陣列和要移除的元素作為引數傳遞給 removeOccurrence() 函式來呼叫它。

步驟 9 − 將從函式獲得的結果儲存在一個名為 output 的變數中。

步驟 10 − 使用 fmt.Println() 函式在螢幕上列印最終結果。

示例 1

package main
import "fmt"
func removeOccurrence(nums [10]int, val int) []int {
   lenArr := len(nums)
   var k int = 0
   for i := 0; i < lenArr; {
      if nums[i] != val {
         nums[k] = nums[i]
         k++
      }
      i++
   }
   return nums[0:k]
}
func main() {
   arr1 := [10]int{1, 2, 3, 4, 4, 5, 4, 7, 8, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   fmt.Println()
   output := removeOccurrence(arr1, 4)
   fmt.Println("The array obtained after removing all the occurrences of element 4 are:", output)
}

輸出

The first array Arr1 is: [1 2 3 4 4 5 4 7 8 4]

The array obtained after removing all the occurrences of element 4 are: [1 2 3 5 7 8]

演算法

步驟 1 − 匯入 fmt 包。

步驟 2 − 定義名為 removeOccurrences() 的函式。

步驟 3 − 此函式使用 for 迴圈遍歷陣列,並使用 if 條件檢查陣列的當前元素是否等於我們想要移除的元素。

步驟 4 − 如果條件為真,則我們需要移除該值並追加陣列。重複此過程,直到整個陣列被遍歷。

步驟 5 − 返回結果陣列。

步驟 6 − 啟動 main() 函式。

步驟 7 − 初始化一個數組併為其賦值,然後使用 ... 在螢幕上列印陣列。

步驟 8 − 透過將陣列和我們想要移除的值作為引數傳遞給 removeOccurrences() 函式來呼叫它。

步驟 9 − 將函式返回的值儲存在一個單獨的變數中,並使用 fmt.Println() 函式在螢幕上列印它。

示例 1

現在讓我們看看另一個從 Go 語言陣列中移除所有指定元素出現的示例。

package main
import "fmt"
func removeOccurrence(nums []int, val int) []int {
   var i int
   for {
      if i == len(nums) {
         break
      }
      if nums[i] == val {
         nums = nums[:i+copy(nums[i:], nums[i+1:])]
         i = 0
      }
      i++
   }
   return nums
}
func main() {
   arr1 := []int{1, 2, 3, 4, 4, 5, 4, 7, 8, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   fmt.Println()
   output := removeOccurrence(arr1, 4)
   fmt.Println("The array obtained after removing all the occurrences of element 4 are:", output)
}

輸出

The first array Arr1 is: [1 2 3 4 4 5 4 7 8 4]

The array obtained after removing all the occurrences of element 4 are: [1 2 3 5 7 8]

示例 2

現在讓我們編寫一個 Go 語言程式碼來從陣列中移除字串元素。

package main
import (
   "fmt"
)
func main() {
   originalArray := [5]string{"a", "b", "c", "c", "d"}
   fmt.Println("The original array is:", originalArray)
   val := "c"
   j := 0
   for _, v := range originalArray {
      if v != val {
         originalArray[j] = v
         j++
      }
   }
   newArray := originalArray[:j]
   fmt.Println("The new array is:", newArray)
}

輸出

The original array is: [a b c c d]
The new array is: [a b d]

結論

我們已經成功編譯並執行了一個 Go 語言程式,該程式用於移除陣列中所有指定元素的出現,並附帶示例。

更新於: 2023年1月2日

554 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.