control.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import "fmt"
  3. func main() {
  4. // простое условие
  5. boolVal := true
  6. if boolVal {
  7. fmt.Println("boolVal is true")
  8. }
  9. mapVal := map[string]string{"name": "rvasily"}
  10. // условие с блоком инициализации
  11. if keyValue, keyExist := mapVal["name"]; keyExist {
  12. fmt.Println("name =", keyValue)
  13. }
  14. // получаем только признак сущестования ключа
  15. if _, keyExist := mapVal["name"]; keyExist {
  16. fmt.Println("key 'name' exist")
  17. }
  18. cond := 1
  19. // множественные if else
  20. if cond == 1 {
  21. fmt.Println("cond is 1")
  22. } else if cond == 2 {
  23. fmt.Println("cond is 2")
  24. }
  25. // switch по 1 переменной
  26. strVal := "name"
  27. switch strVal {
  28. case "name":
  29. fallthrough
  30. case "test", "lastName":
  31. // some work
  32. default:
  33. // some work
  34. }
  35. // switch как замена многим ifelse
  36. var val1, val2 = 2, 2
  37. switch {
  38. case val1 > 1 || val2 < 11:
  39. fmt.Println("first block")
  40. case val2 > 10:
  41. fmt.Println("second block")
  42. }
  43. // выход из цикла, находясь внутри switch
  44. Loop:
  45. for key, val := range mapVal {
  46. println("switch in loop", key, val)
  47. switch {
  48. case key == "lastName":
  49. break
  50. println("dont pront this")
  51. case key == "firstName" && val == "Vasily":
  52. println("switch - break loop here")
  53. break Loop
  54. }
  55. } // конец for
  56. }