상세 컨텐츠

본문 제목

[Nomad Coin] Tour of Go - #3.4 Slices and Arrays

Go/Blockchain

by Gopythor 2022. 7. 10. 22:01

본문

728x90
반응형

#3.4 Slices and Arrays

  • Go에서 array(배열)은 java script와 python과 같지만, 무한하지 않고 정해진 길이가 있다.
  • 몇 개의 element를 가질 지 정의해야 한다.
package main

import "fmt"

func main() {
	foods := [3]string{"potato","pizza", "pasta"}
	for _, food := range food{
		fmt.Println(food)
    }
    for i:=0; i<len(foods); i++{
    	fmt.Println(foods[i])
    }
}
  • array를 만드는 방법은 array 방식(대괄호)를 쓰고 그 안에 item 수를 적는다.
  • array에 있는 item들의 type은 대괄호 다음에 작성한다.
  • elements 들은 {} 안에 작성한다.
  • for 문(iterate)는 두 가지 방식으로 가능하다. 항상 range를 사용할 필요는 없다.
  • len()은 array의 length를 제공한다.
  • array의 지루한 점은 array를 만들기 전에 element의 개수를 미리 명시해야 한다.
  • array의 크기를 원하는 만큼 늘려야 하는 경우가 많다.
package main

import "fmt"

func main() {
	foods := []string{"potato","pizza", "pasta"}
	for _, food := range food{
		fmt.Println(food)
    }
    for i:=0; i<len(foods); i++{
    	fmt.Println(foods[i])
    }
}
  • slice는 array와 비슷한데 무한히 커질 수 있으며, array 선언과 같이 하지만 []안에 숫자를 넣지 않는다.
  • slice의 구조는 Go가 array를 만들고 공간이 필요하면 array를 더 만든다.
  • javascript의 array처럼 계속 내용을 더할 수 있다.
package main

import "fmt"

func main() {
	foods := []string{"potato","pizza", "pasta"}
	fmt.Printf("%v\n", foods)
	foodsNew := append(foods, "tomato")	//foods의 복사본
	foods = append(foods, "tomato")		// 업데이트
	fmt.Printf("%v\n", foods)

}
  • append()는 slice에 item 하나를 더 추가할 수 있게 해준다.
  • Javascript에서는 array.push()를 해주는 것에 익숙하다.
  • append 함수를 호출하고 첫 argument로 slice, 두 번째는 slice에 추가하고 싶은 내용 입력
  • append가 직접 slice를 변경시켜주지는 않는다. append가 새로운 slice를 주면 기존 slice 업데이트는 직접 해야 한다.

https://go.dev/play/p/HH8M0nHf8sI

 

강의 출처 : 노마드코더(https://nomadcoders.co)

728x90
반응형

관련글 더보기

댓글 영역