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值.但是由于结构体内容较多,都在一行,所以希望可以格式化输出结构体 ...
 
随机推荐
- 這是我既C語言作業寫博客後寫的第一篇博客
			
這篇博客應該算是寫給我自己的博客吧,所以這裏我想用繁體字寫,因為我漸漸地發現我已經很少使用到繁體字了,日常QQ聊天都使用簡體字,繁體字都懶得切換了,但是為了不讓別人麻煩,在外界交流的時候我會使用簡體字 ...
 - Jenkins搭建.NET自动编译发布本地环境
			
最近在做一个团队项目的时候,用到了自动编译发布部署环境[也可以说是持续集成],于是顺便学习了下这个环境的搭建过程. 持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员 ...
 - C# 判断操作系统的位数
			
判断操作系统的位数有一下几种方法: 1. 特征值IntPtr 2. WMI 1的实现如下: public static int GetOSInfo() { if (IntPtr.Size == 8) ...
 - macdown在mac OS 中的配置
			
macdown 用命令行打开.md文件 执行两条命令即可. sudo echo "open -a MacDown \$*" > /usr/local/bin/macdown ...
 - linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署
			
CentOS_minimal安装和开发环境部署:http://www.th7.cn/system/lin/201305/39002.shtml 网络接口配置文件 [root@localhost ~]# ...
 - Data_Structure03-栈和队列
			
一.学习总结 1.写出你认为本周学习中比较重要的知识点关键词 ·抽象数据类型 ·栈和队列 2.思维导图 二.PTA实验作业 选题: 1.7-1 jmu-字符串是否对称(20 分) 2.7-4(选做) ...
 - mysql 计算经纬度函数(米)
			
) CHARSET utf8mb4 begin return ROUND( * ASIN( SQRT( POW( SIN( ( lat1 ) ), ) ) ) * POW( SIN( ( lon1 ) ...
 - Train-Alypay-Cloud
			
ylbtech-Train-Alypay-Cloud: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 ...
 - [C#][控件]WebBrowser 使用范例
			
if (webInfo.Document != null) webInfo.Document.OpenNew(true); else webInfo.Navigate("about:blan ...
 - Hive 查看日志
			
日志记录了程序运行的过程,是一种查找问题的利器. Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况.2. Job 日志,记录了Hive 中job的执行的历史过程. 系统日志存 ...