strbool.go 374 B

12345678910111213141516171819202122232425
  1. package missinggo
  2. import (
  3. "strconv"
  4. "strings"
  5. "unicode"
  6. )
  7. func StringTruth(s string) (ret bool) {
  8. s = strings.TrimFunc(s, func(r rune) bool {
  9. return r == 0 || unicode.IsSpace(r)
  10. })
  11. if s == "" {
  12. return false
  13. }
  14. ret, err := strconv.ParseBool(s)
  15. if err == nil {
  16. return
  17. }
  18. i, err := strconv.ParseInt(s, 0, 0)
  19. if err == nil {
  20. return i != 0
  21. }
  22. return true
  23. }