Go の nil で完全に嵌ったのでメモ。 嵌りポイント 例えば、Revel の validator.go の中にこんな関数がいる。 func (r Required) IsSatisfied(obj interface{}) bool { if obj == nil { return false } if str, ok := obj.(string); ok { return len(str) > 0 } if b, ok := obj.(bool); ok { return b } if i, ok := obj.(int); ok { return i != 0 } if t, ok := obj.(time.Time); ok { return !t.IsZero() } v := reflect.ValueOf(obj) if v.Kind() == reflect.Slice