为了账号安全,请及时绑定邮箱和手机立即绑定

len方法未定义

len方法未定义

Go
缥缈止盈 2021-05-13 18:13:14
我一直在阅读[golang-book]:http://www.golang-book.com,并按照自己的意愿完成练习。在第6章中,有一项练习必须在未排序列表[x]中找到最小的元素。我有以下代码,但是以某种方式我不知道为什么方法长度(len)在第14行给我一个错误:x.len undefined(类型[] int没有字段或方法len)package mainimport "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 方法?任何帮助是极大的赞赏。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

数组和切片没有len()方法。len()函数是内置的语言。


所以你的代码


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

应该


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

这是操场上的工作版本。


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]);

        }

    }

}


查看完整回答
反对 回复 2021-05-31
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

len()不是切片的方法。这是一个全局功能。你想说len(x)。


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])

        }

    }

}


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信