前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang基本结构之练习(day2)

Golang基本结构之练习(day2)

作者头像
超蛋lhy
发布2018-08-31 15:58:52
3680
发布2018-08-31 15:58:52
举报
文章被收录于专栏:PythonistaPythonista

笔记:

代码语言:javascript
复制
1. 任何一个代码文件隶属于一个包
2. import 关键字,引用其他包:
import(“fmt”)
import(“os”)
通常习惯写成:
import (
      “fmt”
       “os”
)
3. golang可执行程序,package main,
     并且有且只有一个main入口函数
4. 包中函数调用:
a. 同一个包中函数,直接调用
b. 不同包中函数,通过包名+点+
函数名进行调用
5. 包访问控制规则:

大写意味着这个函数/变量是可导出的
小写意味着这个函数/变量是私有的,
     包外部不能访问

练习:

代码语言:javascript
复制
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\n", i, n-i, n)
    }
}
func main() {
    list(10)
}

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

代码语言:javascript
复制
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)
}
 
代码语言:javascript
复制
package add

import (
    //_"go_dev/day2/example2/test"
)

func init() {
    Name = "hello world"
    Age = 10
}

var Name string = "xxxxx"
var Age int = 66

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

答案同2题

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

目录结构如图:

代码语言:javascript
复制
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)
}
代码语言:javascript
复制
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)
}
代码语言:javascript
复制
package add

import (
    _"go_dev/day2/example2/test"
)

func init() {

    Name = "hello world"
    Age = 10
}

var Name string = "xxxxx"
var Age int = 66
代码语言:javascript
复制
6. 定义两个常量Man=1和Female=2,获取当前时间的秒数,如果能被Female整除,则
    在终端打印female,否则打印man。

Second := time.Now().Unix()
代码语言:javascript
复制
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")
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 笔记:
  • 练习:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档