123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package main
- import (
- "fmt"
- "math/rand"
- ) //引入math/rand标准库包,并以rand作为引入名
- const MaxRand = 16 // 声明一个具名整型常量
- // 一个函数声明
- /* StatRandomNumbers生成一些不大于MaxRand的非负
- 随机整数,并统计和返回小于和大于MaxRand/2的随机数
- 个数。输入参数numRands指定了要生成的随机数的总数。
- */
- func StatRandomNumbers(numRands int) (int, int) {
- // 声明了两个变量(类型都为int,初始值都为0)
- var a, b int
- // 一个for循环代码块
- for i := 0; i < numRands; i++ {
- // 一个if-else条件控制代码块
- if rand.Intn(MaxRand) < MaxRand/2 {
- a = a + 1
- } else {
- b++ // 等价于:b = b + 1
- }
- }
- return a, b // 此函数返回两个结果
- }
- func SquareesofSumAndDiff(a, b int64) (s, d int64) {
- // return (a + b) * (a + b), (a - b) * (a - b)
- s = (a + b) * (a + b)
- d = (a - b) * (a - b)
- return
- }
- // main函数,或主函数,是一个程序的入口函数。
- func main() {
- {
- // part1
- // var num = 100
- // 调用上面声明的StatRandomNumbers函数,
- // 并将结果赋给使用短声明语句声明的两个变量。
- // x, y := StatRandomNumbers(num)
- // 调用两个内置函数(print和println)。
- // print("Result: ", x, " + ", y, " = ", num, "? ")
- // println(x+y == num)
- // println(reflect.TypeOf("num").Name())
- }
- {
- // 函数声明与调用
- // x, y := SquareesofSumAndDiff(1, 2)
- // fmt.Printf("%d,%d", x, y)
- }
- {
- // //匿名函数
- // x, y := 1, 2
- // a, b := func(x, y int) (int, int) {
- // x = 4
- // print(x + y)
- // return x, y
- // }(x, y)
- // func() {
- // println("hello")
- // }()
- // fmt.Printf("%d,%d", a, b)
- // //在函数体后面跟上()表示声明后立即执行
- }
- {
- x, y := "炸", "煎鱼"
- fmt.Println(&x)
- _, _ = func(x, y string) (s string, err error) {
- x = "吃"
- fmt.Println(&x)
- return x + y, nil
- }(x, y)
- fmt.Println(&x)
- fmt.Println(x, y)
- }
- }
|