Find element in a slice and move it to first position?
Example
package main
import (
"fmt"
)
func main() {
sliceInt := []int{11,2, 19, 220, 31, 5, 65, 70, 100}
find:=65
fmt.Println(sliceInt)
if len((sliceInt)) == 0 || (sliceInt)[0] == find {
fmt.Println(sliceInt)
return
}
if (sliceInt)[len(sliceInt)-1] == find {
(sliceInt) = append([]int{find}, (sliceInt)[:len(sliceInt)-1]...)
fmt.Println(sliceInt)
return
}
for p, x := range sliceInt {
if x == find {
(sliceInt) = append([]int{find}, append((sliceInt)[:p], (sliceInt)[p+1:]...)...)
break
}
}
fmt.Println(sliceInt)
}
Output
[11 2 19 220 31 5 65 70 100]
[65 11 2 19 220 31 5 70 100]
Most Helpful This Week
Split URL and Get Parameters from URL
Example: How to use ReadAtLeast from IO Package in Golang?
Passing multiple string arguments to a variadic function
How to count number of repeating words in a given String?
Pass different types of arguments in variadic function
How to read/write from/to file in Golang?