main

  1. package main
  2. import "fmt"
  3. func test() (int, error) {
  4. return 0, nil
  5. }
  6. func main() {
  7. //变量的定义
  8. //静态语言的变量和动态语言的变量差异很大
  9. //1. 变量的声明和定义
  10. //var a = 20
  11. //var b = 20
  12. //c := 100
  13. //fmt.Println(a, b, c)
  14. //
  15. //d, e := 1, 2
  16. //fmt.Println(d, e)
  17. //
  18. //var f, g, h int
  19. //f, g, h = 1, 2, 3
  20. //fmt.Println(f, g, h)
  21. ////集合类型
  22. //var (
  23. // a int
  24. // name string
  25. //)
  26. var i = 10
  27. i = 20
  28. fmt.Println(i)
  29. //匿名变量 变量一旦被定义 不使用会报错
  30. //常量的定义
  31. //const PI = 3.14159265
  32. //r := 2.0
  33. //c := 2. * PI * r
  34. //fmt.Println(c)
  35. //枚举
  36. //const (
  37. // Unknown = 0
  38. // Female = 1
  39. // Male = 2
  40. //)
  41. //常量组如不指定类型和初始化值,该类型和值和上一行的一致
  42. //const (
  43. // x int = 16
  44. // y
  45. // s = "abc"
  46. // z
  47. //)
  48. //fmt.Println(x, y, s, z)
  49. //Output:16 16 abc abc
  50. //1. 常量的数据类型值可以是布尔、数字、字符串
  51. //2. 不曾使用的常量,在编译的时候不会报错
  52. //const常量的iota, 常量计数器
  53. const (
  54. Unknown = iota //计数器 从0开始 第一行不能省略
  55. Female
  56. Male
  57. //Book = 0
  58. //Cloth = 1
  59. //Phone = 2
  60. //DestTop = 3
  61. )
  62. //0,1,2 本身不重要,重点在于这三个值不一样
  63. fmt.Println(Unknown, Female, Male)
  64. //iota你真的懂了吗?
  65. // 1. iota只能在常量组中使用
  66. // 2. 各个常量组之间,const定义块互不干扰
  67. // 3. 没有表达式的常量定义复用上一行的表达式
  68. // 4. 从第一行开始,iota从0 "逐行" 加一
  69. const (
  70. a = iota //iota = 0
  71. b = 10 //iota = 1 每一行iota加一
  72. c // c = 10, iota = 2
  73. //d = iota
  74. d, e = iota, iota
  75. f = iota
  76. //iota代表的是这里的行数
  77. )
  78. //fmt.Println(a, b, c, d)
  79. //Output: 0 10 10 3
  80. fmt.Println(a, b, c, d, e, f)
  81. //Output: 0 10 10 3 3 4
  82. }

scope

  1. package main
  2. import "fmt"
  3. var c = 20
  4. func main() {
  5. //变量的作用域
  6. //局部变量
  7. //缩进的习惯
  8. //静态语言写起来代码多,但是严谨性很好
  9. //c := 10 //全局变量定义时无法使用短变量声明
  10. //fmt.Println(c)
  11. ////Output: 10
  12. //sex := "Female"
  13. //if sex == "Female" {
  14. // outStr := "女"
  15. //}
  16. //fmt.Println(outStr)
  17. //程序无法运行
  18. fmt.Printf("%c\n", 97)
  19. //在go中字符和字符串不是一种类型 字符类型是单引号 字符串是双引号
  20. fmt.Printf("%d", '慕') //int32 Unicode编码
  21. }