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+

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.