indexof的等价物

我试图找出 indexof 的等价物来获取数组中特定元素的位置 golang 数组中整数的用途。


package main


import (

    "fmt"

)


func main() {

    fmt.Println("what")


    arr := []int{1, 2, 3, 4, 2, 2, 3, 5, 4, 4, 1, 6}


    i := IndexOf(2, arr)


}


心有法竹
浏览 160回答 4
4回答

猛跑小猪

写一个函数。这是一个示例,假设IndexOf返回数字的第一个索引,如果没有找到则返回 -1。// IndexOf returns the first index of needle in haystack// or -1 if needle is not in haystack.func IndexOf(haystack []int, needle int) int {    for i, v := range haystack {        if v == needle {            return i        }    }    return -1}在 Go Programming Language Playground 上运行此代码。

ITMISS

在 go 中没有通用的库函数可以为您执行此操作。但是,如果您使用的是字节切片,则可以使用IndexByte(b []byte, c byte) int。或者您可以编写一个快速函数来为您执行此操作:func indexOf(arr []int, val int) int {    for pos, v := range arr {        if v == val {            return pos        }    }    return -1}

慕的地8271018

package mainimport "fmt"func IndexOf(arr []int, candidate int) int {    for index, c := range arr {        if c == candidate {            return index        }    }    return -1}func main() {    fmt.Println("what")    arr := []int{1, 2, 3, 4, 2, 2, 3, 5, 4, 4, 1, 6}    i := IndexOf(arr, 2)    fmt.Println(i)}添加方法 IndexOf 进行搜索,这是一种线性搜索方法。参考: https: //play.golang.org/p/Hp6Dg--XoIV

一只萌萌小番薯

IndexOf在 Go中没有等价的 for 。你需要自己实现一个。但是如果你有排序的 Ints 数组,你可以使用sort.SearchInts如下所示。package mainimport (    "fmt"    "sort")func main() {    fmt.Println(sort.SearchInts([]int{2,3,4,5,9,10,11}, 5))}同样来自godoc:SearchInts 在已排序的整数切片中搜索 x 并返回 Search 指定的索引。如果 x 不存在,则返回值是插入 x 的索引(它可能是 len(a))。切片必须按升序排序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go