Не удалось напечатать полный массив строк - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь вернуть строковый массив из функции, но он печатает только последнее значение позиции индекса.Вот мой код и вывод.

package main

import (
    "fmt"
)

func main() {

    myquote := varFunc("Go", "Bunny", "Let's", "Change", "ourself")
    fmt.Println("here also:", myquote)

}

func varFunc(s ...string) string {

    fmt.Println(s)

    fmt.Printf("%T\n", s)
    quote := ""
    for _, v := range s {

        quote = v
        fmt.Println("init: ", quote)
    }
    fmt.Println("is there: ", quote)
    return quote

}

Детская площадка: https://play.golang.org/p/jyZDL5oPmcz

Мой вывод:

[Go Bunny Let's Change ourself]
[]string
init:  Go
init:  Bunny
init:  Let's
init:  Change
init:  ourself
is there:  ourself
here also: ourself

Program exited.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Поскольку вы перезаписываете последнее значение с помощью оператора =.Если я правильно понял, вы пытаетесь напечатать массив в виде одной строки.Примените символ += к qoute, и он должен работать для вас.

package main

import (
    "fmt"
)

func main() {

    myquote := varFunc("Go", "Bunny", "Let's", "Change", "ourself")
    fmt.Println("here also:", myquote)

}

func varFunc(s ...string) string {

    fmt.Println(s)

    fmt.Printf("%T\n", s)
    quote := ""
    for _, v := range s {

        quote += v + " "
        fmt.Println("init: ", quote)
    }
    fmt.Println("is there: ", quote)
    return quote

}
0 голосов
/ 02 февраля 2019

Ваш код возвращает последнее значение quote, которое является значением на последней итерации для строкового массива s.

Если вам нужно вернуть строковый массив s - верните его.Извините за трюизм.

func varFunc(s ...string) []string {

    fmt.Println(s)

    fmt.Printf("%T\n", s)
    quote := ""
    for _, v := range s {

        quote = v
        fmt.Println("init: ", quote)
    }
    fmt.Println("is there: ", quote)
    return s

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