Go語言程式:查詢切片中的最大元素
在本教程中,我們將學習如何透過一些示例查詢切片中的最大元素。切片就像陣列一樣,是一系列元素的序列。陣列是固定長度的元素序列,而切片是動態陣列,這意味著它的值不是固定的,可以更改。切片比陣列更高效、更快,而且它們是按引用傳遞而不是按值傳遞。讓我們透過示例來理解。
方法一:使用使用者自定義函式和 append() 函式
在這個方法中,我們將看到如何使用一個使用者自定義函式(該函式的引數為切片)來查詢切片中的最大元素。輸出將使用 fmt.Println() 函式列印到控制檯。讓我們看看程式碼是如何實現的。
語法
func append(slice, element_1, element_2…, element_N) []T
append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。
演算法
步驟 1 − 建立一個 main 包,並在程式中宣告 fmt(格式化包),其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。
步驟 2 − 建立一個 main 函式,並在該函式中建立一個切片,並使用 append 函式向其中新增值。
步驟 3 − 使用 Go 語言中的 print 語句在控制檯列印切片。
步驟 4 − 從 main 函式呼叫使用者自定義函式 largest_ele,並將切片作為引數傳遞。
步驟 5 − 在 largest_ele 函式中,將切片中的第一個元素設定為 max,這意味著第一個元素被初始化為最大元素。
步驟 6 − 執行一個迴圈,直到切片的長度,並檢查切片元素是否大於 max 元素。
步驟 7 − 如果為真,則將 max 設定為切片元素,並繼續執行此操作,直到找到一個最大元素。
步驟 8 − 將最大元素返回到函式,此最大元素將使用 fmt.Println() 函式列印到控制檯。
示例
使用使用者自定義函式和 append() 函式查詢切片中最大元素的 Go 語言程式
package main
import "fmt"
func main() {
// Create 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 original slice is:", slice)
val := largest_ele(slice)
fmt.Println("The largest element in the slice is:")
fmt.Println(val) // print the largest element
}
func largest_ele(slice []int) int {
var max int
max = slice[0] // assign slice first element to max
for _, ele := range slice {
if ele > max { //check whether element is greater than max
max = ele
}
}
return max
}
輸出
The original slice is: [10 20 30 40 50] The largest element in the slice is: 50
方法二:使用 math 函式
在本教程中,我們將使用 max 函式查詢切片中的最大元素,該函式將比較迴圈中的元素,找出哪個是最大的。讓我們來看一下,並對這個例子有一個清晰的理解。
語法
func append(slice, element_1, element_2…, element_N) []T
append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。
演算法
步驟 1 − 建立一個 main 包,並在程式中宣告 fmt(格式化包),其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。
步驟 2 − 建立一個 main 函式,並在該函式中建立一個切片,並使用 append 函式向其中新增值。
步驟 3 − 使用 Go 語言中的 print 語句在控制檯列印切片。
步驟 4 − 從 main 函式呼叫使用者自定義函式 largest_ele,並將切片作為引數傳遞。
步驟 5 − 在 largest_ele 函式中,將切片中的第一個元素設定為 max,這意味著第一個元素被初始化為最大元素。
步驟 6 − 執行一個迴圈,直到切片的長度,並使用 max 函式對 max_num 變數檢查切片元素是否大於 max 元素。
步驟 7 − 繼續執行此操作,直到找到一個最大元素。
步驟 8 − 將最大元素 max_num 返回到函式,此最大元素將使用 fmt.Println() 函式列印到控制檯。
示例
使用 math 函式查詢切片中最大元素的 Go 語言程式
package main
import (
"fmt"
"math"
)
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)
fmt.Println("The original slice is:", slice)
maximum := largest_ele(slice)
fmt.Println("The largest element in slice is:")
fmt.Println(maximum) // print maximum element
}
func largest_ele(slice []int) int {
var max_num int
max_num = slice[0] //assign slice’s first element to max_num
for _, element := range slice {
max_num = int(math.Max(float64(max_num), float64(element)))
}
return max_num // return the maximum element to the function
}
輸出
The original slice is: [10 20 30 40 50] The largest element in slice is: 50
結論
我們透過兩個例子執行了查詢切片中最大元素的程式。在第一個例子中,我們使用了自定義函式來查詢最大元素,在第二個例子中,我們使用了 max 函式來查詢切片中的最大元素。兩個例子都給出了類似的輸出。因此,程式成功執行。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP