๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Data Base/Go

[Golang] Slices (์Šฌ๋ผ์ด์Šค)

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 1.
๋ฐ˜์‘ํ˜•

Array๋Š” ๊ณ ์ •๋œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋ฐ˜๋ฉด์— Slice๋Š” Array์˜ ์š”์†Œ๋“ค์„ ๋™์ ์ธ ํฌ๊ธฐ๋กœ ์œ ์—ฐํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ๋กœ Slice๋Š” Array๋ณด๋‹ค ํ›จ์”ฌ ํ”ํ•˜๋‹ค.

[]T ํƒ€์ž…์€ T ํƒ€์ž…์„ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” Slice์ด๋‹ค.

Slice๋Š” ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ index(ํ•˜ํ•œ๊ณผ ์ƒํ•œ)๋ฅผ ์ง€์ •ํ•˜์—ฌ ํ˜•์„ฑ๋œ๋‹ค.

 

a[low : high]

 

์ด๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ์™ธํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•œ๋‹ค.

์•„๋ž˜ ํ‘œํ˜„์€ a์˜ ์ฒซ๋ฒˆ์งธ๋ถ€ํ„ฐ ์„ธ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์Šฌ๋ผ์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

a[1:4]

 

 

 

์˜ˆ์ œ

package main

import "fmt"

func main() {
	primes := [6]int{2, 3, 5, 7, 11, 13}

	var s []int = primes[1:4]
	fmt.Println(s)
}

 

 

 

 

๋˜ํ•œ Slice๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋„ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ๊ธฐ๋ณธ Array์˜ ํ•œ ์˜์—ญ์„ ๋‚˜ํƒ€๋‚ผ ๋ฟ์ด๋‹ค.

Slice์˜ ์š”์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ธฐ๋ณธ Array์˜ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์ˆ˜์ •๋œ๋‹ค.

๋™์ผํ•œ ๊ธฐ๋ณธ Array์„ ๊ณต์œ ํ•˜๋Š” ๋‹ค๋ฅธ Slice๋Š” ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

์˜ˆ์‹œ

package main

import "fmt"

func main() {
	names := [4]string{
		"John",
		"Paul",
		"George",
		"Ringo",
	}
	fmt.Println(names)

	a := names[0:2]
	b := names[1:3]
	fmt.Println(a, b)

	b[0] = "XXX"
	fmt.Println(a, b)
	fmt.Println(names)
}

 

 

 

[์ฐธ๊ณ  ์‚ฌ์ดํŠธ - a Tour of Go]

๋ฐ˜์‘ํ˜•

'Data Base > Go' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์‰ฝ๊ณ  ๋น ๋ฅธ Go ์‹œ์ž‘ํ•˜๊ธฐ] #2.1 Methods part One  (0) 2021.11.02
[์‰ฝ๊ณ  ๋น ๋ฅธ Go ์‹œ์ž‘ํ•˜๊ธฐ] #2.0 Account + NewAccount  (0) 2021.11.02
[Golang] defer  (0) 2021.11.01
[Golang] Switch  (0) 2021.11.01
[Golang] if๋ฌธ  (0) 2021.11.01

๋Œ“๊ธ€