栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

GO语言包之间的调用

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GO语言包之间的调用

目录

GO语句写法

两个包之间调用

1,在不同目录调用

2,在同一个目录下调用

GO 中协程演示


GO语句写法

在test.go文件中编写测试代码

package main
import (
"fmt"
)
func main() {
fmt .Print1n("he11o wor1d")
}

1.第一行代码package main定义了包名。你必须在源文件中非注释的第一-行指明这个文件属于哪个包,如: Package main,Package main表示个可独立执行的程序,每个Go应用程序都包含一个名为 main的包。

2,import "fmt"告诉Go编译器这个程序需要使用fmt包(的函数,或其他元素) , fmt 包实现了格式化io(输入/输出)的函数。

3,func main()是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的, -般来说都是在启动后第一个执行的函数(如果 有init()函数则会先执行该函数)。

4,/../是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以/1开头的单行注释。多行注释也叫块注释,均已以结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。

5,fmt.Println..可以将字符申输出到控制台,并在最后自动增加换行字符n。使用fmt.Print("hello, worldn")可以得到相同的结果。Print和Println这两个函数也支持使用变如:fmt.Println(arr)。 如果没有特别指定,它们会以默认的打印格式将变量arr输出到控制台。

6.当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如: Group1, 那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包), 这被称为导出(像面向对象语言中的public) ;标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的protected )。

以下是错误代码

package main
import "fmt"
func main()
{//错误,{不能在单独的行上
fmt .Print1n("He11o, Wor1d!")
}

 

两个包之间调用

1,在不同目录调用

第一个包文件(专门定义函数,工具)

package tool
​
import "fmt"
​
//自定义函数,大写表示权限为公共,可以跨包被调用
func Hello() {
    fmt.Println("hello world")
}
​

第二个包文件(作为程序的主函数,调用工具)

package main
​
import "dev_code/day2/example1/tool"
​
//主函数
func main() {
    tool.Hello()
}

可以输出运行主函数(运行前一定要保存)

[Running] go run "f:goProjectsrcdev_codeday2example1mainmain.go"
hello world
​
[Done] exited with code=0 in 0.565 seconds
调用的步骤:
​
import 导入包名
​
包名.函数名称(大写首字母)

2,在同一个目录下调用

第一个包

package main
​
import "fmt"
​
//函数名定义为小写,同一个包中可以直接调用,跨包不可被调用
func hello() {
    fmt.Println("hello world")
}

第二个包

package main
​
func main() {
    hello()
}

在终端运行

PS F:goProject> cd .srcdev_codeday2example1tool
PS F:goProjectsrcdev_codeday2example1tool> go run ./
hello world
PS F:goProjectsrcdev_codeday2example1tool>

GO 中协程演示

第一个包

package goroute
​
import "fmt"
//定义变量的 var name type:var a int 不可以var int int(类型与名字相同)
func Test_goroute(a int) {
    fmt.Println(a)
}

第二个包

package main
​
import "dev_code/day2/example2/goroute"
​
//协程:可以处理高并发的请求
func main() {
    for i := 0; i < 100; i++ {
        go goroute.Test_goroute(i)
    }
}

输出结果(输出不会按顺序执行,是协程同时执行。)

[Running] go run "f:goProjectsrcdev_codeday2example2mainmain.go"
0
8
10
4
9
1
12
11
......
86
88
89
90
91
92
93
​
[Done] exited with code=0 in 0.54 seconds

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号