len方法未定义

Ale*_*lex 0 go

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

我有以下代码但不知何故我不知道为什么方法长度(len)在第14行给出了一个错误:x.len undefined(type [] int没有字段或方法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])
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用的逻辑是谷歌搜索所以也许在数组上没有len方法?任何帮助是极大的赞赏.

Dan*_*iel 8

数组和切片没有len()方法.len()函数是一种内置语言.

所以你的代码

for i := 1; i < x.len(); i++ {
Run Code Online (Sandbox Code Playgroud)

应该

for i := 1; i < len(x); i++ {
Run Code Online (Sandbox Code Playgroud)

这是操场上的工作版.

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]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)