CastleJo의 개발일지

Go Go - 2

|

오늘은 표준입력과 파일 입력, map 데이터타입에 대해 공부했다.

표준 입력

자바의 Scanner와 비슷한 느낌이다.

input := bufio.NewScanner(os.Stdin)

bufio 라는 패키지를 이용하여 접근한다.

파일 입력

f, err := os.Open(filename)
if err != nil {
    //에러 발생
    return
}
f.Close()

os 패키지를 이용한다.

또한 다른 방법으로도 접근할 수 있는데,

data, err := ioutil.ReadFile(filename)
if err != nil {
    //에러 발생
    return
}
for _, line := range strings.Split(string(data), "\n") {
    // ~~~
}

ioutil 패키지를 이용하면, 한 번에 모든 데이터를 읽어들인다 (os.Open은 한줄씩 스트리밍으로 읽는 느낌)
또한 strings.Split() 함수로 줄마다 나누어서 출력한다.

map 데이터타입

맵은 키/값 쌍을 가지는 타입이다.
저장, 추출, 맵 안의 특정 원소의 유무 검사를 할 수 있다.

counts := make(map[string]int)

형태로 만들어지고, [키]값 형태로 이루어진다.
중복되는 키가 들어오면 값을 증가시키는 형식이다.