Go 언어 배열과 슬라이스 대하여 배워보기 2
오늘도 어제에 이어서 Go 언어의 배열과 슬라이스에 대하여 작성하면서 조금 더 배워보려 합니다.
package main
import (
"fmt"
)
func main() {
var tmp2 = [] int {1,2,3}
for index := 0; index < len(tmp2); index++ {
fmt.Println(tmp2[index])
}
}
슬라이스를 만들고 for문을 이용하여 슬라이스의 크기만큼 반복하며 해당 인덱스의 값을 출력합니다.
package main
import (
"fmt"
)
func main() {
var multiArr [2][3]int
fmt.Println(multiArr)
}
2차원 배열도 만들 수 있습니다.
package main
import (
"fmt"
)
func main() {
sliceArr := []int{1,2,3,4,5,6,7,8,9,10}
fmt.Println(sliceArr[:],sliceArr[0:5],len(sliceArr[0:5]),cap(sliceArr[0:5]))
}
슬라이스의 length와 capacity를 구할 수 있습니다.
package main
import (
"fmt"
)
func main() {
makeArr := make([]int, 3, 10)
fmt.Println(makeArr)
}
make를 이용해서 length와 capacity를 지정한 슬라이스를 만들 수 있습니다.
package main
import (
"fmt"
)
func main() {
realArr := []int{1,2,3}
addArr := []int{1,2,3}
fmt.Println(append(realArr,addArr...))
}
append를 이용하여 두개의 슬라이스를 붙일 수 있습니다
package main
import (
"fmt"
)
func edit(temp[]int){
for i,j := range temp {
fmt.Println(i,j)
temp[i] = 0
}
}
func main() {
editArr := []int{3,2,1}
edit(editArr)
fmt.Println(editArr)
}
함수에서 슬라이스를 고치면 함수가 종료되더라도 값은 저장됩니다.
package main
import (
"fmt"
)
func main() {
copyArr2 := []int{1,2,3,4,5,6,7,8}
tmpArr := make([]int,2)
fmt.Println(copyArr2)
fmt.Println(tmpArr)
copy(tmpArr, copyArr2)
fmt.Println(tmpArr)
}
copy를 이용하여 슬라이스의 값을 또 다른 슬라이스에 옮길 수 있습니다.
만약 복사하려는 슬라이스의 크기보다 복사해놓을 슬라이스의 크기가 작다면 초과하는 길이는 잘린 채로 적용됩니다.
Written on September 13, 2018