make를 사용하여 초기화 하다가 channel도 아니고 map을 왜 make로 해야하나? 라는 생긱에 일반 선언으로 코드를 작성하였더니 에러가 발생하였습니다....
var cols map[string]interface{}
for k, v := range itemMap {
cols[k] = v
}
itemMap에는 적당한 값이 있다 가정합니다.
panic err 문구를 보면 nil map에 접근한다고 나옵니다.
위의 코드는 cols라는 map을 선언만 한 것일 뿐 초기화가 되어있지 않습니다.
선언만 했을 시 nil map이 선언되는 것이며 nil map에는 어떤 데이타를 쓸 수 없습니다.
데이터를 쓰기위해선 make나 리터럴값을 넣어 초기화 하여야 합니다.
//make를 사용한 초기화
cols := make(map[string]interface{})//리터럴을 사용한 초기화
cols := map[string]string{
"GOOG": "Google Inc",
"MSFT": "Microsoft",
"FB": "FaceBook",
}
모르고 쓰다보니 이런 기본적인 것을 못챙기고 있었네요..
이번기회에 알아갑니다