hello.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. }