35 lines
565 B
Go
35 lines
565 B
Go
// Copyright (c) 2024-2026 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// bool.go
|
|
package boolean
|
|
|
|
func IsBool(v any) (ok bool) {
|
|
_, ok = v.(bool)
|
|
return ok
|
|
}
|
|
|
|
// func (b *bool) EqualTo(other kern.Equaler) (equal bool) {
|
|
// if otherBool, ok := other.(*bool); ok {
|
|
// equal = b == otherBool
|
|
// }
|
|
// return
|
|
// }
|
|
|
|
func ToBool(v any) (b bool, ok bool) {
|
|
ok = true
|
|
switch x := v.(type) {
|
|
case string:
|
|
b = len(x) > 0
|
|
case float64:
|
|
b = x != 0.0
|
|
case int64:
|
|
b = x != 0
|
|
case bool:
|
|
b = x
|
|
default:
|
|
ok = false
|
|
}
|
|
return
|
|
}
|