Go에서 []String과 ...String의 차이점
Jay Singh
2023년1월30일
배열 섹션을 슬라이스라고 합니다. 슬라이스는 어레이보다 더 많은 기능, 유연성 및 편의성을 제공합니다.
슬라이스는 인덱싱이 가능하며 배열과 마찬가지로 길이가 있습니다. 배열과 달리 확장할 수 있습니다.
슬라이스는 배열의 연속 섹션을 정의하고 슬라이스 변수와 별도로 유지되는 데이터 구조입니다.
배열은 슬라이스와 다릅니다. 배열의 조각은 배열의 하위 집합입니다.
이 기사에서는 Go에서 []string
과 ...string
의 차이점에 대해 설명합니다.
Go에서 []string
을 사용하여 슬라이스 정의
이 예에서 for
및 range
명령을 사용하여 단어 세트를 반복했습니다.
package main
import "fmt"
func main() {
words := []string{"Iron Man", "Thor", "Hulk", "Dr Strange", "Spiderman"}
for idx, word := range words {
fmt.Println(idx, word)
}
}
출력:
0 Iron Man
1 Thor
2 Hulk
3 Dr Strange
4 Spiderman
Go에서 ...string
을 사용하여 가변 함수 정의
매개변수 앞의 줄임표(...
)는 가변 함수를 정의합니다. 함수에 제공되는 Avengers
이름에 응답하는 프로그램을 만들어 보겠습니다.
하나의 매개변수 name
을 허용하는 sayHello
메소드를 설계했습니다. 데이터 유형 ...string
앞에 줄임표(...
)를 추가했으므로 인수는 변수입니다.
Go는 함수가 0개, 1개 또는 많은 매개변수를 취할 수 있음을 이해합니다.
names
매개변수는 sayHello
메소드에 슬라이스로 전송됩니다. 데이터 유형이 문자열이기 때문에 names
매개변수는 문자열 조각([]string
)처럼 메서드 본문 내에서 처리될 수 있습니다.
range
연산자를 사용하여 문자열 조각을 반복하는 루프를 만들 수 있습니다.
package main
import "fmt"
func main() {
sayHello()
sayHello("Iron Man")
sayHello("Thor", "Hulk", "Dr Strange", "Spiderman")
}
func sayHello(names ...string) {
for _, n := range names {
fmt.Printf("Hello %s\n", n)
}
출력:
Hello Iron Man
Hello Thor
Hello Hulk
Hello Dr Strange
Hello Spiderman
Go에서 []string
과 ...string
모두 사용
package main
import "fmt"
func f(args ...string) {
fmt.Println(len(args))
for i, s := range args {
fmt.Println(i, s)
}
}
func main() {
args := []string{"Hello", "Jay"}
f(args...)
}
출력:
2
0 Hello
1 Jay
관련 문장 - Go Slice
- Golang의 슬라이스에서 요소를 삭제하는 방법
- GoLang Sort Slice of Structs
- Golang 카피 슬라이스
- Go에서 빈 슬라이스 만들기
- 슬라이스에 Golang의 요소가 포함되어 있는지 확인