반응형
나는 int/ string/ bool/etc.. 값이 에 저장되어 있고 interface{}초기화되지 않았는지 확인하고 싶습니다. 즉, 다음 중 하나의 값이 있음을 의미합니다.
- 0
- ""
- false
- 또는nil
어떻게 확인합니까?
func IsZeroOfUnderlyingType(x interface{}) bool {
return reflect.DeepEqual(x, reflect.Zero(reflect.TypeOf(x)).Interface())
}
내 사용예
list := structs.Map(q)
column := []string{"aaa", "bbb", "ccc", "ddd"}
for key, val := range list {
if !(contains(column, key) && !IsZeroOfUnderlyingType(val)) {
delete(list, key)
}else{
fmt.Println("Key:", key, "=>", "val:", val)
}
필요한 컬럼 이외에는 삭제하는 작업시 사용함
https://stackoverflow.com/questions/13901819/quick-way-to-detect-empty-values-via-reflection-in-go
반응형
'Web > GoLang' 카테고리의 다른 글
golang 디렉토리 구조 샘플 (0) | 2022.06.20 |
---|---|
[golang] interface to sturct 인터페이스를 구조체로 변경하는 방법 (1) | 2022.06.07 |
[golang] 개발테스트시 강제 에러 발생 코드 (0) | 2022.04.26 |
[golang] json 파싱시 개행으로 인한 파싱오류, 문자열 강제 replace (0) | 2021.11.15 |
[golnag] json 관련 문서 (0) | 2021.08.27 |
댓글