go - len 方法未定义

标签 go

我一直在阅读 [golang-book]:http://www.golang-book.com并在我进行时完成练习。第六章有一个练习,必须找到未排序列表[x]中的最小元素。

我有以下代码,但不知何故我不知道为什么方法 length (len) 在 第 14 行给我一个错误:x.len undefined (type []int has no field or method len)

package main

import "fmt"

func main() {
    x := []int{
        48, 96, 86, 68,
        57, 82, 63, 70,
        37, 34, 83, 27,
        19, 97, 9, 17,
    }

    small := x[0]
    for i := 1; i < x.len(); i++ {
        if x[i] < small {
            fmt.Println(x[i])
        }
    }
}

我使用的逻辑是用谷歌搜索的,所以也许数组上没有 len 方法?非常感谢任何帮助。

最佳答案

数组和 slice 没有 len() 方法。 len() 函数是一种内置语言。

所以你的代码

for i := 1; i < x.len(); i++ {

应该是

for i := 1; i < len(x); i++ {

这是 the playground 中的工作版本.

package main

import "fmt"

func main(){
    x := []int{
        48,96,86,68,
        57,82,63,70,
        37,34,83,27,
        19,97, 9,17,
    }   

    small := x[0]
    for i := 1; i < len(x); i++ {
        if x[i] < small { 
        fmt.Println(x[i]);
        }
    }
}

关于go - len 方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122361/

相关文章:

json - Golang json.Unmarshal 字符串文字中的无效字符 '\n'

xml - 无法使用 Go 获取 XML 属性

reflection - 使用嵌入在结构中的接口(interface)进行反射 - 如何检测 "real"函数?

mongodb - SORT在聚合功能中不起作用

反射:按字符串构造

google-app-engine - 将 *Key 存储到 GAE 本地数据存储在 DataStoreViewer 中给我错误

go - 通过匿名结构键进行映射查找

docker - 以编程方式检查 Docker 容器进程是否以非零状态结束

go - 从文件中读取字节到内存中

testing - 在 Go 中模拟 HTTPS 响应