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值.但是由于结构体内容较多,都在一行,所以希望可以格式化输出结构体 ...
随机推荐
- 重写ajax方法实现特定情况下跳转登录页面
jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...
- 对Linux内核中进程上下文和中断上下文的理解
内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间.现代的CPU都具有不同的操作模式,代表不同的 级别,不同的级别具有不同的功能,在较低的级别中将禁止某 ...
- NYOJ-1036 非洲小孩
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 家住非洲的小孩,都非常黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不常常洗澡.(常年缺水, ...
- hdfs调优
本文章来自 hackershell.cn,转载请标注出处 描述 这篇文章主要从一些配置设置相关方面去调优Hadoop集群的笔记,内容来自网上或一些实践经验 1.HDFS审计日志 HDFS审计日志是一个 ...
- UML drawing tools
1. tools based on the script http://www.websequencediagrams.com/ UMLet 12.1 My best two recommendati ...
- windows server 2012 双网卡配置
别用route 命令!!!!!! 在使用最新版的windows server 2012的时候,当存在两个或者多个网段的时候,就可以采用双网卡的方式来添加和配置路由.具体的设置方法如下: 网段1 19 ...
- Excel VBA 找出选定范围不重复值和重复值
Sub 找出选定范围内不重复的值() On Error Resume Next Dim d As Object Set d = CreateObject("scripting.diction ...
- 学习笔记之Python 3 教程
Python 3 教程 http://www.runoob.com/python3/python3-tutorial.html Python的3.0版本,常被称为Python 3000,或简称Py3k ...
- python渗透测试工具包
网络 Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包.可用作交互式包处理程序或单独作为一个库.pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的py ...
- ubuntu 下出现E: Sub-process /usr/bin/dpkg returned an error code
在用apt-get安装软件时出现了类似于 install-info: No dir file specified; try –help for more information.dpkg:处理 get ...