Merge pull request #318 from evalphobia/feature/interface-is-zero

Modified time.IsZero() to use interface
This commit is contained in:
Lunny Xiao 2015-11-17 19:39:15 +08:00
commit c643188922
1 changed files with 6 additions and 2 deletions

View File

@ -15,6 +15,10 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
type zeroable interface {
IsZero() bool
}
func isZero(k interface{}) bool { func isZero(k interface{}) bool {
switch k.(type) { switch k.(type) {
case int: case int:
@ -45,8 +49,8 @@ func isZero(k interface{}) bool {
return k.(bool) == false return k.(bool) == false
case string: case string:
return k.(string) == "" return k.(string) == ""
case time.Time: case zeroable:
return k.(time.Time).IsZero() return k.(zeroable).IsZero()
} }
return false return false
} }