📅  最后修改于: 2023-12-03 15:23:09.185000             🧑  作者: Mango
在 Golang 中,可以使用内置的函数来在切片中搜索一个特定的元素。下面介绍如何在切片中搜索一个 float64 类型的元素。
sort
包进行搜索在 Golang 中,可以使用 sort
包来排序切片。排序后,就可以使用内置的 SearchFloat64s
函数来搜索特定的元素。
下面是一个示例代码:
package main
import (
"fmt"
"sort"
)
func main() {
slice := []float64{9.7, 5.6, 2.1, 7.8, 1.0, 3.4, 6.5, 8.9, 0.3, 4.2}
sort.Float64s(slice)
i := sort.SearchFloat64s(slice, 6.5)
if i < len(slice) && slice[i] == 6.5 {
fmt.Println("Found 6.5 at index:", i)
} else {
fmt.Println("6.5 not found")
}
}
运行结果:
Found 6.5 at index: 5
在上面的代码中,我们首先将切片排序,然后使用 SearchFloat64s
函数搜索 6.5。如果元素存在,返回值就是元素在排序后的切片中的索引,否则返回值为 len(slice)
。
除了使用 sort
包之外,还可以使用循环来搜索切片中的元素。下面是一个示例代码:
package main
import "fmt"
func main() {
slice := []float64{9.7, 5.6, 2.1, 7.8, 1.0, 3.4, 6.5, 8.9, 0.3, 4.2}
for i, element := range slice {
if element == 6.5 {
fmt.Println("Found 6.5 at index:", i)
return
}
}
fmt.Println("6.5 not found")
}
运行结果:
Found 6.5 at index: 6
在上面的代码中,我们使用 for
循环遍历切片中的元素,如果遇到与目标元素相同的元素,就返回该元素的索引。如果循环结束后仍然没有找到元素,就输出 "6.5 not found"。
无论是使用 sort
包还是使用循环,都可以在 Golang 切片中搜索一个特定的 float64 类型的元素。建议使用 sort
包来搜索,因为它的性能更好。