Golang 删除数组中的所有’nil’元素

Golang 删除数组中的所有’nil’元素

本教程介绍如何从数组中删除所有nil元素。基本上,数组中有时会出现空字符串,我们希望将其删除。在本教程中,我们将学习如何使用非常简单的方法来删除这些字符串。

方法1:使用辅助函数方法

在这种方法中,我们将看到如何使用辅助函数方法来删除null元素。数组将作为函数的参数被传入,并使用Golang的打印语句将输出打印到控制台。

语法

func append(slice, element_1, element_2…, element_N) []T

append函数用于将值添加到数组片段中。它接受多个参数。第一个参数是我们希望将值添加到其中的数组,其后是要添加的值。该函数返回包含所有值的最终数组片段。

步骤

步骤1 - 在程序中声明一个名为main的包,并导入fmt。

步骤2 - 创建一个名为delete_empty的函数,参数为一个字符串数组,用于消除其中的空字符串。

步骤3 - 在函数内部创建一个数组,将非空值从原始数组中存储在其中。

步骤4 - 循环遍历原始数组直到结尾,并检查条件,如果字符串不等于空字符串,则将原始数组的值追加到新数组中。

步骤5 - 重复步骤5,直到循环终止,完成迭代后返回arr。

步骤6 - 在调用函数的主函数中打印返回的数组。

步骤7 - 使用fmt.Println()函数执行程序,它是Golang中的打印语句。这里的ln表示下一行。

示例

使用辅助函数方法从数组中删除所有空元素的Golang程序

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]

方法2:使用指针方法

在这种方法中,我们将学习如何使用指针和JSON数据删除空元素。这里创建了两个数组,其中一个指向另一个。最后,arr引用了arr2。使用fmt.Println()函数打印输出,它是Golang中的打印语句。

语法

func append(slice, element_1, element_2…, element_N) []T

append函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,其后是要添加的值。函数然后返回包含所有值的最终数组切片。

步骤

步骤 1 - 在程序中声明一个main包并导入fmt包,以及一个类型为string的jsondata数组。

步骤 2 - 创建一个函数,其中一个参数指向json数据的arr,以及一个由主函数调用的带有字符串参数的delete函数。

步骤 3 - 在函数中使用jsondata声明arr2,将存储在arr2中的值将由arr引用,并最终将arr打印到控制台。

步骤 4 - 运行一个循环,直到arr的长度,并检查字符串是否不等于选择器,将字符串附加到arr2中。

步骤 5 - 循环结束后,arr将通过指针引用arr2,并且通过fmt.Println()函数在主函数中使用带有arr的括号打印输出。

示例

使用指针方法从数组中删除所有nil元素的Golang程序。

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

结论

我们使用了两种方法执行了从数组中删除空元素的程序。在第一种方法中,我们使用了辅助函数的方法来删除数组的元素,在第二个示例中,我们在外部函数中使用了指针方法,其中数组作为指针传递,选择器作为参数传递。在两种情况下都获得了相似的输出。因此程序成功执行。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程