
正文
go语言语法use go语言使用
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
GO语言(十一):开始使用多模块工作区
本教程介绍 Go 中多模块工作区go语言语法use的基础知识。使用多模块工作区go语言语法use,您可以告诉 Go 命令您正在同时在多个模块中编写代码go语言语法use,并轻松地在这些模块中构建和运行代码。
在本教程中,您将在共享的多模块工作区中创建两个模块,对这些模块进行更改,并在构建中查看这些更改的结果。
本教程需要 go1.18 或更高版本。使用go.dev/dl中的链接确保您已在 Go 1.18 或更高版本中安装了 Go 。
首先,为您要编写的代码创建一个模块。
1、打开命令提示符并切换到您的主目录。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,为您的代码创建一个名为工作区的目录。
3、初始化模块
我们的示例将创建一个hello依赖于 golang.org/x/example 模块的新模块。
创建go语言语法use你好模块:
使用 . 添加对 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都会被激活。
2、运行工作区目录下的程序
在workspace目录中,运行:
Go 命令包括工作区中的所有模块作为主模块。这允许我们在模块中引用一个包,即使在模块之外。在模块或工作区之外运行go run命令会导致错误,因为该go命令不知道要使用哪些模块。
接下来,我们将golang.org/x/example模块的本地副本添加到工作区。然后,我们将向stringutil包中添加一个新函数,我们可以使用它来代替Reverse.
在这一步中,我们将下载包含该模块的 Git 存储库的副本golang.org/x/example,将其添加到工作区,然后向其中添加一个我们将从 hello 程序中使用的新函数。
1、克隆存储库
在工作区目录中,运行git命令来克隆存储库:
2、将模块添加到工作区
该go work use命令将一个新模块添加到 go.work 文件中。它现在看起来像这样:
该模块现在包括example.com/hello模块和 `golang.org/x/example 模块。
这将允许我们使用我们将在模块副本中编写的新代码,而不是使用命令stringutil下载的模块缓存中的模块版本。
3、添加新功能。
我们将向golang.org/x/example/stringutil包中添加一个新函数以将字符串大写。
将新文件夹添加到workspace/example/stringutil包含以下内容的目录:
4、修改hello程序以使用该功能。
修改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命令可以正确解析工作区之外的模块。
相关问答
Q1: 关于sql 中 use go 的具体用法
SQL脚本是一种用SQL语言写的批处理文件(.sql),SQL脚本通常可以由SQL查询分析器来执行。
=====================================================
GO向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功go语言语法use了才会执行下一步,即一步一个GO)
语法
GO
注释
GO 不是Transact-SQL语句;而是可为cmdsql和osql实用工具及SQL Server查询分析器识别的命令。
SQL Server实用工具将GO解释为应将当前的Transact-SQL批处理语句发送给SQL Server的信号。当前批处理语句是自上一GO命令后输入的所有语句go语言语法use,若是第一条GO命令go语言语法use,则是从特殊会话或脚本的开始处到这条GO命令之间的所有语句。
GO命令和Transact-SQL语句不可在同一行上。但在GO命令行中可包含注释。
用户必须遵照使用批处理(.sql)的规则。
例如go语言语法use,在批处理(.sql)中的第一条语句后执行任何存储过程必须包含EXECUTE关键字。
再有,局部(用户定义)变量的作用域限制在一个批处理中,不可在GO命令后引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello,World.'
GO --@MyMsg is not valid after this GO ends the batch.
--Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
--Yields an error: Must be EXEC sp_who if not first statement in
--batch.
sp_who
GO
SQL Server应用程序可将多条Transact-SQL语句作为一个批处理发给SQL Server去执行。在此批处理中的语句编译成一个执行计划。程序员在SQL Server实用工具中执行特定语句,或生成Transact-SQL语句脚本在SQL Server实用工具中运行,用GO来标识批处理的结束。
如果基于DB-Library、ODBC或OLE DB APIs的应用程序试图执行GO命令时会收到语法错误。SQL Server实用工具永远不会向服务器发送GO命令。
权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
示例
下面的示例创建两个批处理。第一个批处理只包含一条USE pubs语句,用于设置数据库上下文。剩下的语句使用go语言语法use了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用GO命令来做到。
USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT(*)
FROM authors
PRINT 'The number of authors as of' +
CAST(GETDATE() AS char(20)) + 'is' +
CAST(@NmbrAuthors AS char (10))
GO
=================================================
USE //改变当前操作数据库
用法:
USE 数据库名
例:
CREATE DATABASE XX1 --创建XX1数据库
………………
GO
CREATE DATABASE XX2 --创建XX2数据库
………………
GO
USE XX1 --转到XX1数据库
GO
………… --对XX1数据库的操作
GO
USE XX2 --转到XX2数据库
GO
………… --对XX2数据库的操作
GO
USE在存储过程中不能直接使用
但可以这样用:
create proc test
as
exec('use pubs select * from jobs') --或者exec(use pubs) exec sp_adduser 'xxxx'
go
--使用Exec(ute)语句配合USE来改变当前数据库,但数据库环境的更改只在Execute语句结束前有效,所以必须把后面的语句和Execute放到一起
exec test
Q2: Use的用法、短语及语法
(1)作动词时:1,使用,利用,运用;2,消耗(比如热量,电量等);3,说,写,使用(词语或语言);4,(施展手段)利用(别人);5,吸(毒),服用(毒品)。
(2)作名词时:1,用,使用,得到使用:2,用途,功能,用法;3,使用权,使用机会;4,运用头脑(或身体)的能力,功能;
常见短语句型:
sb could use sth 恨不得,巴不得,非常想。
use your head 你仔细想想。
use sth up 用尽,吃光。
be no use (to sb)/be of no use 无用
be of use (to sb)有用,用帮助
come into/go out of use 开始/停止使用
have no use for sb讨厌(或憎恶)---的人
have no use for sth 不需要,用不着
it`s no use (doing sth)没有意义,没有用处
make use of sth /sb 使用,利用(以权谋私等)
put sth to good use 有效使用
另外还有相似的词used 是形容词,意思是习惯于,适应,旧的,用过的。
短语:used to 曾经(过去常常发生的),后接动词原形
be used to 习惯于,适应于,后接doing形式。
Q3: go语言语法(基础语法篇)
import "workname/packetfolder"
导入多个包
方法调用 包名.函数//不是函数或结构体所处文件或文件夹名
packagename.Func()
前面加个点表示省略调用,那么调用该模块里面的函数,可以不用写模块名称了:
当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。下划线的作用仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数
import _ package
变量声明必须要使用否则会报错。
全局变量运行声明但不使用。
func 函数名 (参数1,参数2,...) (返回值a 类型a, 返回值b 类型b,...)
func 函数名 (参数1,参数2,...) (返回值类型1, 返回值类型2,...)
func (this *结构体名) 函数名(参数 string) (返回值类型1, 返回值类型2){}
使用大小来区分函数可见性
大写是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里面的强制转换是将值复制过去,所以在数据量的时候有比较高的运行代价
Q4: Go语言基础语法(一)
本文介绍一些Go语言的基础语法。
先来看一个简单的go语言代码:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包。
log包实现了简单的日志服务,也提供了一些格式化输出的方法。
执行结果:
下面来介绍一下go的数据类型
下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值。
常量是在程序编译时就确定下来的值,程序运行时无法改变。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符。
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句。另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍。
if语法格式如下:
if ... else :
else if:
示例代码:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true。
示例代码:
执行结果:
下面介绍几种循环语句:
执行结果:
执行结果:
也可以通过标记退出循环:
--THE END--
go语言语法use的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言使用、go语言语法use的信息别忘了在本站进行查找喔。







