Я получаю сообщение об ошибке о недостаточном количестве аргументов для возврата - PullRequest
0 голосов
/ 31 января 2019

Я хочу вернуть строку или фрагмент в одну функцию, я могу использовать в php.но получить ошибку в Go

package main

import "fmt"

func main() {
    // arr := []int {34, 23, 45, 56, 62, 45, 12, 96, 22}
    arr := []int{}

    fmt.Println(test(arr))
}

func test(dataList []int ) ( string ,  []int )  {
    if dataList == nil{
       return "this is string"
    }

    return []int{}
}

error: недостаточно аргументов для возврата

1 Ответ

0 голосов
/ 31 января 2019

Если вы определяете два возвращаемых типа, вам всегда нужно возвращать два типа.Вы не можете вернуть только один.

Посмотрите на это:

func test(dataList []int) (string, []int) {
    if dataList == nil {
        return "this is string", []int{}
    }

    return "", []int{}
}

Это сработает, потому что я возвращаю как string, так и []int в каждом случае (и в точном определенном порядке).

Может быть, если вы сможете объяснить, что ваша функция пытается выполнить, мы можем дать лучший совет о том, как проектировать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...