1. package main
  2. import (
  3. "fmt"
  4. "reflect"
  5. )
  6. func in_array(val interface{}, array interface{}) (exists bool, index int) {
  7. exists = false
  8. index = -1
  9. switch reflect.TypeOf(array).Kind() {
  10. case reflect.Slice:
  11. s := reflect.ValueOf(array)
  12. for i := 0; i < s.Len(); i++ {
  13. if reflect.DeepEqual(val, s.Index(i).Interface()) == true {
  14. index = i
  15. exists = true
  16. return
  17. }
  18. }
  19. }
  20. return
  21. }
  22. func main() {
  23. names := []string{"Mary", "Anna", "Beth", "Johnny", "Beth"}
  24. fmt.Println(in_array("Anna", names))
  25. fmt.Println(in_array("Jon", names))
  26. ints := []int{1, 4, 3, 2, 6}
  27. fmt.Println(in_array(3, ints))
  28. fmt.Println(in_array(95, ints))
  29. }

分类: web

标签:   golang