golang学习比较简单,不过任何一门语言都不是孤立存在的,今天这一节简要说明一下golang开发的学习路线
①golang基础,包括go语言安装,go语言语法,流程控制语句,函数,方法,面向对象概念,网络编程,并发编程等
链乔教育在线祝您学有所成.
import "workname/packetfolder"
导入多个包
方法调用 包名.函数//不是函数或结构体所处文件或文件夹名
packagename.Func()
前面加个点表示省略调用,那么调用该模块里面的函数,可以不用写模块名称了:
当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已.下划线的作用仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数
import _ package
变量声明必须要使用否则会报错.
全局变量运行声明但不使用.
使用大小来区分函数可见性
大写是public类型
小写是private类型
func prifunc int{}
func pubfunc int{}
声明静态变量
const value int
定义变量
var value int
声明一般类型、接口和结构体
声明函数
func function () int{}
go里面所有的空值对应如下
通道类型
内建函数 new 用来分配内存,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配类型零值的指针
func new(Type) *Type
[这位博主有非常详细的分析]
Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可.
goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的.
同一个程序中的所有 goroutine 共享同一个地址空间.
语法格式如下:
通道(channel)是用来传递数据的一个数据结构.
通道的声明
通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯.操作符 - 用于指定通道的方向,发送或接收.如果未指定方向,则为双向通道.
[这里有比较详细的用例]
go里面的空接口可以指代任何类型(无论是变量还是函数)
声明空接口
go里面的的强制类型转换语法为:
int(data)
如果是接口类型的强制转成其他类型的语法为:
go里面的强制转换是将值复制过去,所以在数据量的时候有比较高的运行代价
当我们将一种功能用于多个地方的时候,就需要封装这些功能,以便于多次使用,然而封装就需要使用函数来进行封装,所以呢本章我们就来说说函数的使用方法.我们先来看看涉及到函数的一些用法目录.如下:
无参函数
有参函数
带返回值的函数
带多个返回值的函数
匿名函数
闭包
自调用
递归
本章内容还是比较丰富的,请耐心往下看.
本教程介绍 Go 中多模块工作区的基础知识.使用多模块工作区,您可以告诉 Go 命令您正在同时在多个模块中编写代码,并轻松地在这些模块中构建和运行代码.
在本教程中,您将在共享的多模块工作区中创建两个模块,对这些模块进行更改,并在构建中查看这些更改的结果.
首先,为您要编写的代码创建一个模块.
①.、打开命令提示符并切换到您的主目录.
在 Linux 或 Mac 上:
在 Windows 上:
我们的示例将创建一个hello依赖于 golang.org/x/example 模块的新模块.
创建土嘎嘎的粉丝们大家好模块:
使用 . 添加对 golang.org/x/example 模块的依赖项go get.
在 hello 目录下创建 hello.go,内容如下:
现在,运行 hello 程序:
在这一步中,我们将创建一个go.work文件来指定模块的工作区.
在workspace目录中,运行:
该go work init命令告诉为包含目录中模块的工作空间go创建一个文件 .go.work./hello
该go命令生成一个go.work如下所示的文件:
该go.work文件的语法与go.mod相同.
该go指令告诉 Go 应该使用哪个版本的 Go 来解释文件.它类似于文件中的go指令go.mod .
该use指令告诉 Go在进行构建时hello目录中的模块应该是主模块.
所以在模块的任何子目录中workspace都会被激活.
Go 命令包括工作区中的所有模块作为主模块.这允许我们在模块中引用一个包,即使在模块之外.在模块或工作区之外运行go run命令会导致错误,因为该go命令不知道要使用哪些模块.
此时此刻呢,我们将golang.org/x/example模块的本地副本添加到工作区.然后,我们将向stringutil包中添加一个新函数,我们可以使用它来代替Reverse.
①.、克隆存储库
在工作区目录中,运行git命令来克隆存储库:
该go work use命令将一个新模块添加到 go.work 文件中.它现在看起来像这样:
该模块现在包括example.com/hello模块和 +golang.org/x/example 模块.
我们将向golang.org/x/example/stringutil包中添加一个新函数以将字符串大写.
将新文件夹添加到workspace/example/stringutil包含以下内容的目录:
修改workspace/hello/hello.go的内容以包含以下内容:
从工作区目录,运行
Go 命令在go.work文件指定的hello目录中查找命令行中指定的example.com/hello模块 ,同样使用go.work文件解析导入golang.org/x/example.
go.work可以用来代替添加replace 指令以跨多个模块工作.
由于这两个模块在同一个工作区中,所以呢很容易在一个模块中进行更改并在另一个模块中使用它.
现在,要正确发布这些模块,我们需要发布golang.org/x/example 模块,例如在v0.1.0. 这通常通过在模块的版本控制存储库上标记提交来完成.发布完成后,我们可以增加对 golang.org/x/example模块的要求hello/go.mod:
这样,该go命令可以正确解析工作区之外的模块.
函数的go语言中的一级公民,我们把所有的功能单元都定义在函数中,可以重复使用.函数包含函数的名称、参数列表和返回值类型,这些构成了函数的签名(signature).
函数在使用之前必须先定义,可以调用函数来完成某个任务.函数可以重复调用,从而达到代码重用.
go语言函数定义语法
语法解析:
go语言函数定义实例
定义一个求和函数
定义一个比较两个数大小的函数
go语言函数调用
当我们要完成某个任务时,可以调用函数来完成.调用函数要传递参数,如何有返回值可以获得返回值.
运行结果
以上就是土嘎嘎小编为大家整理的go语言函数完整教程相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!