Go語言程式:在切片中搜索元素
在本教程中,我們將學習如何使用不同的示例在切片中搜索元素。切片就像陣列一樣,是一系列元素的序列。陣列是一系列固定元素的序列,而切片是動態陣列,這意味著它的值不是固定的,可以更改。切片比陣列更高效、更快,並且它們是透過引用而不是透過值傳遞的。
語法
func append(slice, element_1, element_2…, element_N) []T
append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的最終陣列切片。
方法 1:使用外部使用者定義函式
在這種方法中,我們將使用外部函式在切片中搜索元素。切片和要搜尋的元素將作為引數傳遞給函式。輸出將使用 fmt.Println() 函式列印到控制檯。讓我們透過程式碼瞭解它是如何完成的。
演算法
步驟 1 − 建立一個名為 main 的包,並在程式中宣告 fmt(格式化包),其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。
步驟 2 − 建立一個名為 search_ele 的函式,將切片和要搜尋的元素作為引數,此函式從 main 中呼叫。
步驟 3 − 執行一個迴圈,直到切片的長度,並檢查要搜尋的元素是否等於切片的任何元素。
步驟 4 − 如果為真,則返回索引;如果為假,則返回 -1 到自定義函式。
步驟 5 − 呼叫 main 函式。
步驟 6 − 在 main 函式中,檢查該值是否等於 -1,如果等於 -1,則列印該元素不存在於切片中,否則列印它存在於切片中。
步驟 7 − 列印語句使用 fmt.Println() 函式執行,其中 ln 表示換行符。
示例
使用外部函式在切片中搜索元素的 Go 語言程式
package main
import "fmt"
func main() {
// Declare a slice of integers
var slice []int
slice = append(slice, 10) // create slice using append function
slice = append(slice, 20)
slice = append(slice, 30)
slice = append(slice, 40)
slice = append(slice, 50)
fmt.Println("The slice given here is:", slice)
// Call the search function and store the value in a variable named val
val := search_ele(slice, 40)
fmt.Println("The value to be searched from the slice is:", 40)
if val != -1 {
fmt.Println("The element is found in slice at index:", val)
} else {
fmt.Println("The element was not found in the slice")
}
}
func search_ele(slice []int, key int) int {
for i, element := range slice {
if element == key { // check the condition if its true return index
return i
}
}
return -1
}
輸出
The slice given here is: [10 20 30 40 50] The value to be searched from the slice is: 40 The element is found in slice at index: 3
方法 2:使用 main 函式
在這種方法中,我們將使用 main 函式在切片中搜索元素。將建立一個標誌,其值將幫助我們列印元素是否存在於切片中。輸出將使用 fmt.Println() 函式列印到控制檯。讓我們透過程式碼瞭解它是如何完成的。
演算法
步驟 1 − 建立一個名為 main 的包,並在程式中宣告 fmt(格式化包),其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。
步驟 2 − 建立一個 main 函式,並在函式中使用 append 函式建立一個切片,以及一個型別為 bool 的變數 flag,其初始值為 false。
步驟 3 − 建立一個變數 item 併為其分配要搜尋的值。
步驟 4 − 執行一個迴圈,直到切片的長度,並檢查要搜尋的元素是否等於切片的任何元素。
步驟 5 − 如果為真,則將標誌設定為 true 並中斷迴圈,但如果為假,則執行迴圈直到結束,並在迴圈終止後檢查條件。
步驟 6 − 如果標誌為真,則列印該元素存在於切片中的語句,否則列印該元素不存在於切片中的語句。
步驟 7 − 列印語句使用 fmt.Println() 函式執行,其中 ln 表示換行符。
示例
使用 main 函式在切片中搜索元素的 Go 語言程式
package main
import "fmt"
func main() {
var slice []int
slice = append(slice, 10) // create slice using append function
slice = append(slice, 20)
slice = append(slice, 30)
slice = append(slice, 40)
slice = append(slice, 50)
var flag bool = false // assign initial value as false
fmt.Println("The slice given here is:", slice)
var item int = 8
fmt.Println("The value to be searched from the slice is:", item)
for element := range slice {
if element == item {
flag = true // break the loop if flag is true
break
}
}
if flag {
fmt.Println("The element is present in the slice")
} else {
fmt.Println("The element is not present in the slice")
}
}
輸出
The slice given here is: [10 20 30 40 50] The value to be searched from the slice is: 8 The element is not present in the slice
結論
我們使用兩個示例執行了搜尋切片元素的程式。在第一個示例中,我們使用自定義函式搜尋元素,在第二個示例中,我們使用 main 函式搜尋值。這兩個示例都提供了類似的輸出。因此,程式成功執行。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP