• Golang基本结构之练习(day2)


    笔记:

    1. 任何一个代码文件隶属于一个包
    2. import 关键字,引用其他包:
    import(“fmt”)
    import(“os”)
    通常习惯写成:
    import (
          “fmt”
           “os”
    )
    3. golang可执行程序,package main,
         并且有且只有一个main入口函数
    4. 包中函数调用:
    a. 同一个包中函数,直接调用
    b. 不同包中函数,通过包名+点+
    函数名进行调用
    5. 包访问控制规则:
    
    大写意味着这个函数/变量是可导出的
    小写意味着这个函数/变量是私有的,
         包外部不能访问

    练习:

    package main
    /*
    算出结果是:
    0+10=10
    1+9=10
    2+8=10
    3+7=10
    4+6=10
    5+5=10
    6+4=10
    7+3=10
    8+2=10
    9+1=10
    10+0=10
     */
    import "fmt"
    
    func list(n int) {
        for i := 0; i <= n; i++ {
            fmt.Printf("%d+%d=%d
    ", i, n-i, n)
        }
    }
    func main() {
        list(10)
    }

    2. 一个程序包含两个包add和main,其中add包中有两个变量:Name和age。请问main
    包中如何访问Name和age?

    package main
    
    import (
        //包别名的用法  a
        "fmt"
        a "go_dev/day2/example2/add"
    )
    
    func main() {
        fmt.Println("Name=:", a.Name)
        //add.age是小写 私有变量,所以找不到
        fmt.Println("age=:", a.Age)
    }
     
    main.go
    package add
    
    import (
        //_"go_dev/day2/example2/test"
    )
    
    func init() {
        Name = "hello world"
        Age = 10
    }
    
    var Name string = "xxxxx"
    var Age int = 66
    View Code

    3. 包别名的应用,开发一个程序,使用包别名来访问包中的函数?

    答案同2题

    4. 每个源文件都可以包含一个init函数,这个init函数自动被go运行框架调用。开发一个程序
    演示这个功能?

    目录结构如图:

    package main
    
    import (
        //包别名的用法  a
        "fmt"
        a "go_dev/day2/example2/add"
    )
    
    func main() {
        //5 打印add中的
        fmt.Println("Name=:", a.Name)
        //add.age是小写 私有变量,所以找不到
        //6
        fmt.Println("age=:", a.Age)
    }
    main.go
    package test
    
    import "fmt"
    
    var Name string = "This is test package"
    var Age int = 1000
    
    func init() {
        //1
        fmt.Println("this is a test,init")
        //2
        fmt.Println("test.package.Name=", Name)
        //3
        fmt.Println("test.package.Age=", Age)
        Age=10
        //4
        fmt.Println("test.package.age=",Age)
    }
    test.go
    package add
    
    import (
        _"go_dev/day2/example2/test"
    )
    
    func init() {
    
        Name = "hello world"
        Age = 10
    }
    
    var Name string = "xxxxx"
    var Age int = 66
    add.go
    6. 定义两个常量Man=1和Female=2,获取当前时间的秒数,如果能被Female整除,则
    在终端打印female,否则打印man。

    Second := time.Now().Unix()
    package main
    
    import (
        "fmt"
        "time"
    )
    
    const (
        Man = iota + 1
        Female
    )
    /*
    6. 定义两个常量Man=1和Female=2,获取当前时间的秒数,如果能被Female整除,则
        在终端打印female,否则打印man。
    
    Second := time.Now().Unix()
    
     */
    func main() {
        //for 就是个死循环
        for {
            time.Sleep(100000 * time.Microsecond)
            second := time.Now().Unix()
            if second%Female == 0 {
                fmt.Println("female")
            } else {
                fmt.Println("man")
            }
        }
    }
    main.go
  • 相关阅读:
    有哪些学习openCV的网站或书籍?
    开发者自述:我是这样学习 GAN 的
    FSGAN Subject Agnostic Face Swapping and Reenactment翻译+重点标注
    01-GAN公式简明原理之铁甲小宝篇
    CentOS 7 之 hostapd.conf 配置说明
    dlib库实现人脸68个特征点的定标操作的原理有哪些?
    生成对抗网络GAN---生成mnist手写数字图像示例(附代码)
    deepfake 资源总结
    大话CNN经典模型:VGGNet
    欧几里得距离
  • 原文地址:https://www.cnblogs.com/pyyu/p/8037187.html
Copyright © 2020-2023  润新知