hello.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. ) //引入math/rand标准库包,并以rand作为引入名
  6. const MaxRand = 16 // 声明一个具名整型常量
  7. // 一个函数声明
  8. /* StatRandomNumbers生成一些不大于MaxRand的非负
  9. 随机整数,并统计和返回小于和大于MaxRand/2的随机数
  10. 个数。输入参数numRands指定了要生成的随机数的总数。
  11. */
  12. func StatRandomNumbers(numRands int) (int, int) {
  13. // 声明了两个变量(类型都为int,初始值都为0)
  14. var a, b int
  15. // 一个for循环代码块
  16. for i := 0; i < numRands; i++ {
  17. // 一个if-else条件控制代码块
  18. if rand.Intn(MaxRand) < MaxRand/2 {
  19. a = a + 1
  20. } else {
  21. b++ // 等价于:b = b + 1
  22. }
  23. }
  24. return a, b // 此函数返回两个结果
  25. }
  26. func SquareesofSumAndDiff(a, b int64) (s, d int64) {
  27. // return (a + b) * (a + b), (a - b) * (a - b)
  28. s = (a + b) * (a + b)
  29. d = (a - b) * (a - b)
  30. return
  31. }
  32. // main函数,或主函数,是一个程序的入口函数。
  33. func main() {
  34. {
  35. // part1
  36. // var num = 100
  37. // 调用上面声明的StatRandomNumbers函数,
  38. // 并将结果赋给使用短声明语句声明的两个变量。
  39. // x, y := StatRandomNumbers(num)
  40. // 调用两个内置函数(print和println)。
  41. // print("Result: ", x, " + ", y, " = ", num, "? ")
  42. // println(x+y == num)
  43. // println(reflect.TypeOf("num").Name())
  44. }
  45. {
  46. // 函数声明与调用
  47. // x, y := SquareesofSumAndDiff(1, 2)
  48. // fmt.Printf("%d,%d", x, y)
  49. }
  50. {
  51. //匿名函数
  52. x, y := func() (int, int) {
  53. print("hello")
  54. return 3, 5
  55. }()
  56. func() {
  57. println("hello")
  58. }()
  59. fmt.Printf("%d,%d", x, y)
  60. }
  61. }