How to find out element position in slice?
The Sort function sorts the data interface in both ascending and descending order. IntSlice attaches the methods of Interface to []int, sorting in increasing order. StringSlice attaches the methods of Interface to []string, sorting in increasing order.
Below is an example to search particular string or integer in string or integer slice vice versa.
Example
package main
import (
"fmt"
"sort"
)
func main() {
str := []string{"Washington","Texas","Ohio","Nevada","Montana","Indiana","Alaska"} // unsorted
sort.Sort(sort.StringSlice(str))
fmt.Println(str) // sorted
fmt.Println("Length of Slice: ", sort.StringSlice.Len(str)) // 7
fmt.Println("OHIO found in Slice at position: ", sort.StringSlice(str).Search("OHIO")) // 4
fmt.Println("Ohio found in Slice at position: ", sort.StringSlice(str).Search("Ohio")) // 4
fmt.Println("ohio found in Slice at position: ", sort.StringSlice(str).Search("ohio")) // 7
fmt.Println("\n\n")
num := []int{9, 22, 54, 33, -10, 40} // unsorted
sort.Sort(sort.IntSlice(num))
fmt.Println(num) // sorted
fmt.Println("Length of Slice: ", sort.IntSlice.Len(num)) // 6
fmt.Println("40 found in Slice at position: ", sort.IntSlice(num).Search(40)) // 4
fmt.Println("82 found in Slice at position: ", sort.IntSlice(num).Search(82)) // 6
}
Output
[Alaska Indiana Montana Nevada Ohio Texas Washington]
Length of Slice: 7
OHIO found in Slice at position: 4
Ohio found in Slice at position: 4
ohio found in Slice at position: 7
[-10 9 22 33 40 54]
Length of Slice: 6
40 found in Slice at position: 4
82 found in Slice at position: 6