serial.go 554 B

12345678910111213141516171819202122232425262728293031323334
  1. package helper
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. func ToString(v interface{}) string {
  7. if v == nil {
  8. return ""
  9. }
  10. switch value := v.(type) {
  11. case string:
  12. return value
  13. case *string:
  14. return *value
  15. case fmt.Stringer:
  16. return value.String()
  17. case error:
  18. return value.Error()
  19. default:
  20. return fmt.Sprintf("%+v", value)
  21. }
  22. }
  23. // Concat concatenates all input into a single string.
  24. func Concat(v ...interface{}) string {
  25. builder := strings.Builder{}
  26. for _, value := range v {
  27. builder.WriteString(ToString(value))
  28. }
  29. return builder.String()
  30. }