📌  相关文章
📜  在 Golang 切片中搜索一个 float64 类型的元素

📅  最后修改于: 2021-10-24 13:08:09             🧑  作者: Mango

在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。
在 Go 切片中,您可以借助SearchFloat64s()函数在给定的 float64s 切片中搜索 float64 类型的元素。此函数在 float64s 的排序切片中搜索给定元素,并返回该元素的索引(如果存在于给定切片中)。如果给定的元素在切片中不可用(它可能是len(s_slice) ),则它返回索引以在切片中插入元素。指定的切片必须按升序排序。它定义在 sort 包下,因此您必须在程序中导入 sort 包才能访问SearchFloat64s函数。

句法:

func SearchFloat64s(s_slice []float64, f float64) int

示例 1:

// Go program to illustrate how to search an 
// element float64 type in the slice of float64s
package main
  
import (
    "fmt"
    "sort"
)
  
// Main function
func main() {
  
    // Creating and initializing
    // slice of Float64s
    // Using shorthand declaration
    slice_1 := []float64{45.667, 34545.5, 655.45,
                        768.8, 79.1, 10.2, 34.67}
      
    slice_2 := []float64{56.78, 67.89, 10.7,
                         345.6, 89.4, 45.8}
  
    var f1, f2, f3 float64
    f1 = 34545.5
    f2 = 67.89
    f3 = 10.7
  
    // Sorting the given slice of Float64s
    sort.Float64s(slice_1)
    sort.Float64s(slice_2)
  
    // Displaying the slices
    fmt.Println("Slice 1: ", slice_1)
    fmt.Println("Slice 2: ", slice_2)
  
    // Searching an element of float64
    // in the given slice
    // Using SearchFloat64s function
    res1 := sort.SearchFloat64s(slice_1, f1)
    res2 := sort.SearchFloat64s(slice_2, f2)
    res3 := sort.SearchFloat64s(slice_2, f3)
  
    // Displaying the results
    fmt.Println("Result 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
  
}

输出:

Slice 1:  [10.2 34.67 45.667 79.1 655.45 768.8 34545.5]
Slice 2:  [10.7 45.8 56.78 67.89 89.4 345.6]
Result 1:  6
Result 2:  3
Result 3:  0

示例 2:

// Go program to illustrate how to search an
// element of float64 type in the slice of
// float64s
package main
  
import (
    "fmt"
    "sort"
)
  
// Main function
func main() {
  
    // Creating and searching an element
    // in the given slice of float64s
    // Using SearchFloat64s function
    res1 := sort.SearchFloat64s([]float64{23.4,
                        56.7, 90.7}, 56.7)
  
    res2 := sort.SearchFloat64s([]float64{10.2,
               13.90, 25.78, 38.90}, 10.2)
  
    // Displaying the results
    fmt.Println("Result 1: ", res1)
    fmt.Println("Result 2: ", res2)
  
}

输出:

Result 1:  1
Result 2:  0