package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
daje mi błąd:
prog.go: 10: nie można użyć reg (typ [3] string) jako typu [] string w argumencie do strings.Join
Czy jest bardziej bezpośredni / lepszy sposób niż zapętlanie i dodawanie do zmiennej?
reg := []string {"a","b","c"}
?Odpowiedzi:
Tytuł Twojego pytania to:
lecz w rzeczywistości
reg
to nie plaster, ale długość trzy tablicą.[...]string
jest po prostu cukrem syntaktycznym (w tym przypadku)[3]string
.Aby uzyskać rzeczywisty kawałek, powinieneś napisać:
(Wypróbuj: https://play.golang.org/p/vqU5VtDilJ .)
Nawiasem mówiąc, jeśli kiedykolwiek naprawdę będziesz musiał połączyć tablicę ciągów w jeden ciąg, możesz uzyskać wycinek z tablicy, dodając
[:]
, na przykład:(Wypróbuj: https://play.golang.org/p/zy8KyC8OTuJ .)
źródło
Użyj plastra, a nie tablicy. Po prostu utwórz go za pomocą
Alternatywą byłoby przekonwertowanie tablicy na plasterek podczas łączenia:
Przeczytaj blog Go o różnicach między wycinkami i tablicami .
źródło
Jest to nadal aktualne w 2018 roku.
Do sznurka
Wróćmy do Slice ponownie
źródło