Golang基本结构之练习(day2)
笔记:
. 任何一个代码文件隶属于一个包
. import 关键字,引用其他包:
import(“fmt”)
import(“os”)
通常习惯写成:
import (
“fmt”
“os”
)
. golang可执行程序,package main,
并且有且只有一个main入口函数
. 包中函数调用:
a. 同一个包中函数,直接调用
b. 不同包中函数,通过包名+点+
函数名进行调用
. 包访问控制规则: 大写意味着这个函数/变量是可导出的
小写意味着这个函数/变量是私有的,
包外部不能访问
练习:
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 := ; i <= n; i++ {
fmt.Printf("%d+%d=%d\n", i, n-i, n)
}
}
func main() {
list()
}
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 =
} var Name string = "xxxxx"
var Age int =
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是小写 私有变量,所以找不到
//
fmt.Println("age=:", a.Age)
}
main.go
package test import "fmt" var Name string = "This is test package"
var Age int = func init() {
//
fmt.Println("this is a test,init")
//
fmt.Println("test.package.Name=", Name)
//
fmt.Println("test.package.Age=", Age)
Age=
//
fmt.Println("test.package.age=",Age)
}
test.go
package add import (
_"go_dev/day2/example2/test"
) func init() { Name = "hello world"
Age =
} var Name string = "xxxxx"
var Age int =
add.go
6. 定义两个常量Man=1和Female=2,获取当前时间的秒数,如果能被Female整除,则
在终端打印female,否则打印man。 Second := time.Now().Unix()
package main import (
"fmt"
"time"
) const (
Man = iota +
Female
)
/*
6. 定义两个常量Man=1和Female=2,获取当前时间的秒数,如果能被Female整除,则
在终端打印female,否则打印man。 Second := time.Now().Unix() */
func main() {
//for 就是个死循环
for {
time.Sleep( * time.Microsecond)
second := time.Now().Unix()
if second%Female == {
fmt.Println("female")
} else {
fmt.Println("man")
}
}
}
main.go
Golang基本结构之练习(day2)的更多相关文章
- Golang 入门 : 结构体(struct)
Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...
- 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct
https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp. ...
- Golang操作结构体、Map转化为JSON
结构体生成Json package main import ( "encoding/json" "fmt" ) type IT struct { Company ...
- golang初始化结构体数组
最近组里新项目要求用go来写,没办法只能边看文档边写代码,今天遇到郁闷的问题,查了好久最终发现居然是一个标点符号的导致的,遂纪录之 刚刚给一个接口写单元测试时想初始化一个结构体数组,然后遍历该数组并建 ...
- golang之结构体使用注意事项和细节
1. 结构体的所有字段在内在中是连续的 2. 结构体是用户单独定义的类型,和其它类型进行转换时需要有完全相同的字段(名字.个数和类型) 3. 结构体进行type重新定义(相当于取别名),Golang认 ...
- golang(07)结构体介绍
golang支持面向对象的设计,一般支持面向对象的语言都会有class的设计,但是golang没有class关键字,只有struct结构体.通过结构体达到类的效果,这叫做大成若缺,其用不弊. stru ...
- Golang通过结构体解析和封装XML
Golang解析和封装XML 解析XML成结构体Demo package main import ( "encoding/xml" "fmt" ) //我们通过 ...
- Golang struct结构
结构struct Go中的struct与C中的struct非常相似,并且Go没有class,代替了class的位置,但并没有代替class的功能 使用type struct{} 定义结构,名称遵循可见 ...
- golang 对结构体进行格式化输出
可以使用 `return fmt.Sprintf("%+v", *conf) ` 来打印结构体,包括结构体的key值.但是由于结构体内容较多,都在一行,所以希望可以格式化输出结构体 ...
随机推荐
- SpringBoot实现网站注册,邮件激活码激活功能
项目源码:https://gitee.com/smfx1314/springbootemail 上一篇文章已经讲到如何springboot如何实现邮件的发送,趁热打铁,这篇文章实现如下功能. 很多网站 ...
- [Qt] QLineEdit 仿QQ签名框
今天鼓捣了半天,终于实现了自定义Qt中的QlineEdit控件的大致效果. 这个问题对于新手而言,主要有以下几个难点: 1.继承QLineEdit控件 2.QSS设置QLineEdit的相关样式,可以 ...
- R学习笔记 ---- 系列文章
R实战 开篇:介绍R的使用 R学习笔记 第五篇:字符串操作 R学习笔记 第六篇:数据变换和清理 R学习笔记 第四篇:函数,分支和循环 R学习笔记 第三篇:数据框 R学习笔记 第二篇:矩阵.数组和列表 ...
- Android开发入门
教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...
- C语言使用pthread多线程编程(windows系统)二
我们进行多线程编程,可以有多种选择,可以使用WindowsAPI,如果你在使用GTK,也可以使用GTK实现了的线程库,如果你想让你的程序有更多的移植性你最好是选择POSIX中的Pthread函数库,我 ...
- SQL中減少日志文件大小
SQL中減少日志文件大小 编写人:CC阿爸 2014-6-14 在日常SQL数据库的操作中,常常会出现SQL日志文件超大,大小都超过正常MDF数据库文件,作为一般用户来讲,LDF太大,只会影响服务 ...
- 卸载 visual studio 2012时先把系统还原打开
否则,会停留在创建还原点那儿很长时间 .
- python 简明教程
第一个源程序 #!/usr/bin/python# Filename : helloworld.pyprint 'Hello world' 执行: $ python helloworld.py 或者 ...
- .net 提取注释生成API文档 帮助文档
提取注释生成API文档 一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和 ...
- 根据给定文件编写Makefile文件 两种方法编译
实例一 1.分析源文件代码依赖关系 mian.c #include "test1.h" #include "test2.h" #include <stdi ...