猿问

Golang 从切片追加函数“已评估但未使用”中删除重复整数

我无法让这个 Go lang 测试程序运行。编译器在下面的 append() 函数调用中不断给出错误,并显示“已评估但未使用”错误。我不知道为什么。


package main


import (

    "fmt"

)


func removeDuplicates(testArr *[]int) int {


    prevValue := (*testArr)[0]

    for curIndex := 1; curIndex < len((*testArr)); curIndex++ {

        curValue := (*testArr)[curIndex]

        if curValue == prevValue {

            append((*testArr)[:curIndex], (*testArr)[curIndex+1:]...)

        }

        prevValue = curValue

    }

    return len(*testArr)

}


func main() {

    testArr := []int{0, 0, 1, 1, 1, 2, 2, 3, 3, 4}


    nonDupSize := removeDuplicates(&testArr)


    fmt.Printf("nonDupSize = %d", nonDupSize)

}


慕哥6287543
浏览 98回答 2
2回答

qq_遁去的一_1

“已评估但未使用”错误。下面的代码是我的想法。我认为你的代码不是很清楚。package mainimport (    "fmt")func removeDuplicates(testArr *[]int) int {    m := make(map[int]bool)    arr := make([]int, 0)    for curIndex := 0; curIndex < len((*testArr)); curIndex++ {        curValue := (*testArr)[curIndex]        if has :=m[curValue]; !has {            m[curValue] = true            arr = append(arr, curValue)        }    }    *testArr = arr    return len(*testArr)}func main() {    testArr := []int{0, 0, 1, 1, 1, 2, 2, 3, 3, 4}    nonDupSize := removeDuplicates(&testArr)    fmt.Printf("nonDupSize = %d", nonDupSize)}

一只斗牛犬

编译错误是由于没有从 append() 获取返回值
随时随地看视频慕课网APP

相关分类

Go
我要回答