Golang 合并两个整数数组而不使用库函数
Go语言中的数组被定义为一种数据结构,用于在连续的内存位置中存储元素。数组允许我们以常数时间搜索和存储元素。数组使用索引来存储元素,索引从0开始,到n-1结束,其中n是数组的长度。
在这里,我们将使用两种方法,第一种方法是在程序的主要部分实现逻辑,而第二种方法是使用外部函数。
方法1:在主要部分使用for循环
在这里,我们将使用一个for循环来迭代数组,并将两个数组的每个元素复制到新数组中,并将最终数组打印到屏幕上。
步骤
- 步骤1 - 导入fmt包,允许我们在屏幕上打印任何内容。
-
步骤2 - 现在调用main()函数。
-
步骤3 - 初始化两个整数类型的数组,并向它们存储值。进一步将这两个数组打印到屏幕上。
-
步骤4 - 将arr1的长度存储在一个名为j的变量中。
-
步骤5 - 初始化一个空的第三个数组,其长度是第一个和第二个整数数组长度之和。
-
步骤6 - 然后我们使用一个for循环来迭代第一个数组,并将其所有值存储在arr3中。
-
步骤7 - 还要遍历第二个数组,并在arr1的值之后将其值存储在arr3中。
-
步骤8 - 为了实现这一点,我们使用了一个变量j,并且通过j的索引来存储arr3的值。
-
步骤9 - 到目前为止,我们已经得到了一个包含第一个和第二个数组元素的第三个数组。
-
步骤10 - 使用fmt.Println()函数将该数组打印到屏幕上。
示例
在这个示例中,我们将编写一个Golang程序,在程序的main()部分使用for循环合并两个整数数组。
package main
import "fmt"
func main() {
arr1 := [4]int{1, 2, 3, 4}
fmt.Println("The first array entered is:", arr1)
arr2 := [4]int{5, 6, 7, 8}
var j int = len(arr1)
var arr3 [8]int
fmt.Println("The second array entered is:", arr2)
for i := 0; i < len(arr1); i++ {
arr3[i] = arr1[i]
}
for i := 0; i < len(arr2); i++ {
arr3[j] = arr2[i]
j = j + 1
}
fmt.Println("The final array obtained after merging the first two arrays is:", arr3)
}
输出
The first array entered is: [1 2 3 4]
The second array entered is: [5 6 7 8]
The final array obtained after merging the first two arrays is: [1 2 3 4 5 6 7 8]
方法2:使用外部自定义函数
我们创建的函数将接受两个整数数组作为参数,并在合并两个数组后返回最终数组。
步骤
- 步骤1 - 导入 fmt 包,允许在屏幕上打印任何内容。
-
步骤2 - 现在,创建一个名为 mergeArrays() 的函数来合并两个数组。此函数接受两个数组作为参数,并在合并它们后返回最终数组。
-
步骤3 - 在该函数内,将 arr1 的长度存储在名为 j 的变量中。进一步初始化一个长度为第一个和第二个数组长度之和的、类型为整数的空数组。
-
步骤4 - 我们使用 for 循环遍历第一个数组,并将所有值存储在 arr3 中。
-
步骤5 - 还要遍历第二个数组,并在 arr3 中存储其值,位置在 arr1 的值之后。
-
步骤6 - 为了实现这一点,我们使用变量 j,并通过 j 的索引将值存储在 arr3 中。
-
步骤7 - 到目前为止,我们已经得到了一个包含第一个和第二个数组元素的第三个数组。
-
步骤8 - 现在调用 main() 函数。在程序的 main() 部分初始化两个类型为整数的数组,并将值存储在它们中。进一步将这两个数组打印在屏幕上。
-
步骤9 - 现在,通过将这两个数组作为参数传递给 mergeArrays() 函数来调用它,并将获得的结果存储在名为 result 的单独变量中。
-
步骤10 - 现在,使用 fmt.Println() 函数将结果数组打印在屏幕上。
示例
在此示例中,我们将使用一个外部自定义函数将两个给定的整数数组合并为第三个数组。
package main
import "fmt"
func mergeArrays(arr1 [4]int, arr2 [4]int) [8]int {
var arr3 [8]int
var j int = len(arr1)
for i := 0; i < len(arr1); i++ {
arr3[i] = arr1[i]
}
for i := 0; i < len(arr2); i++ {
arr3[j] = arr2[i]
j = j + 1
}
return arr3
}
func main() {
arr1 := [4]int{1, 2, 3, 4}
fmt.Println("The first array entered is:", arr1)
arr2 := [4]int{5, 6, 7, 8}
fmt.Println("The second array entered is:", arr2)
result := mergeArrays(arr1, arr2)
fmt.Println("The final array obtained after merging the first two arrays is:", result)
}
输出
The first array entered is: [1 2 3 4]
The second array entered is: [5 6 7 8]
The final array obtained after merging the first two arrays is: [1 2 3 4 5 6 7 8]
结论
我们已成功编译和执行了一个 Go 语言程序,用于合并两个数组,并提供了示例。在第一个程序中,我们在程序的 main() 部分中使用 for 循环来合并第三个数组,而在最后一个程序中,我们使用了一个外部用户定义的函数来实现结果。
极客笔记