go语言代码 go语言代码加密

GO语言(三十二):访问关系型数据库(下)

在本节中,您将使用 Go 执行 SQL INSERT语句以向数据库添加新行。

创新互联公司专注于企业营销型网站建设、网站重做改版、双柏网站定制设计、自适应品牌网站建设、H5页面制作商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为双柏等各大城市提供网站开发制作服务。

您已经了解了如何使用Query和QueryRow处理返回数据的 SQL 语句。要执行 不 返回数据的 SQL 语句,请使用Exec.

1、在albumByID下面,粘贴以下addAlbum函数以在数据库中插入新专辑,然后保存 main.go。

在此代码中:

(1)用DB.Exec执行INSERT语句。

Exec接受一条 SQL 语句,后跟 SQL 语句的参数值。

(2)检查尝试INSERT中的错误。

(3)使用Result.LastInsertId检索插入的数据库行的 ID 。

(4)检查尝试检索 ID 的错误。

2、更新main以调用新addAlbum函数。

在main函数末尾添加以下代码。

在新代码中:

(1)调用addAlbum添加新专辑,将要添加的专辑的 ID 分配给albID变量。

从包含 main.go 目录的命令行中,运行代码。

恭喜!您刚刚使用 Go 对关系数据库执行了简单的操作。

本节包含您使用本教程构建的应用程序的代码。

Go语言事件请求处理程序(Event Handler)

在Go语言的代码中,您需要引入官方的SDK库 aliyun/serverless/fc-runtime-go-sdk/fc,并实现handler函数和main函数。 示例如下:

传入的event参数是一个包含key属性的JSON字符串,示例如下。

具体的示例解析如下:

有效的Event Handler签名如下:

其中,InputType和OutputType与encoding/json标准库兼容。

Event Handler的使用需遵循以下规则:

事件函数的Handler示例代码:

GO语言(十三):使用 Go 和 Gin 开发 RESTful API(下)

当客户端在 发出POST请求时/albums,您希望将请求正文中描述的专辑添加到现有专辑数据中。

为此,您将编写以下内容:

1、编写代码

a.添加代码以将专辑数据添加到专辑列表。

在此代码中:

1)用于Context.BindJSON 将请求正文绑定到newAlbum。

2) album将从 JSON 初始化的结构附加到albums 切片。

3)向响应添加201状态代码,以及表示您添加的专辑的 JSON。

b.更改您的main函数,使其包含该router.POST函数,如下所示。

在此代码中:

1)将路径中的POST方法与 /albumspostAlbums函数相关联。

使用 Gin,您可以将处理程序与 HTTP 方法和路径组合相关联。这样,您可以根据客户端使用的方法将发送到单个路径的请求单独路由。

a.如果服务器从上一节开始仍在运行,请停止它。

b.从包含 main.go 的目录中的命令行,运行代码。

c.从不同的命令行窗口,用于curl向正在运行的 Web 服务发出请求。

该命令应显示添加专辑的标题和 JSON。

d.与上一节一样,使用curl检索完整的专辑列表,您可以使用它来确认添加了新专辑。

该命令应显示专辑列表。

当客户端向 发出请求时GET /albums/[id],您希望返回 ID 与id路径参数匹配的专辑。

为此,您将:

a.在您在上一节中添加的函数下方postAlbums,粘贴以下代码以检索特定专辑。

此getAlbumByID函数将提取请求路径中的 ID,然后找到匹配的专辑。

在此代码中:

(1)Context.Param用于从 URL 中检索id路径参数。当您将此处理程序映射到路径时,您将在路径中包含参数的占位符。

(2)循环album切片中的结构,寻找其ID 字段值与id参数值匹配的结构。如果找到,则将该album结构序列化为 JSON,并将其作为带有200 OK HTTP 代码的响应返回。

如上所述,实际使用中的服务可能会使用数据库查询来执行此查找。

(3)如果找不到专辑,则返回 HTTP 404错误。

b.最后,更改您的main,使其包含对router.GET的新调用,路径现在为/albums/:id ,如以下示例所示。

在此代码中:

(1)将/albums/:id路径与getAlbumByID功能相关联。在 Gin 中,路径中项目前面的冒号表示该项目是路径参数。

a.如果服务器从上一节开始仍在运行,请停止它。

b.在包含 main.go 的目录中的命令行中,运行代码以启动服务器。

c.从不同的命令行窗口,用于curl向正在运行的 Web 服务发出请求。

该命令应显示您使用其 ID 的专辑的 JSON。如果找不到专辑,您将收到带有错误消息的 JSON。

恭喜!您刚刚使用 Go 和 Gin 编写了一个简单的 RESTful Web 服务。

本节包含您使用本教程构建的应用程序的代码。

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语言(十五):泛型入门(下)-

在本节中,您将添加通用函数调用的修改版本,进行小的更改以简化调用代码。您将删除在这种情况下不需要的类型参数。

当 Go 编译器可以推断您要使用的类型时,您可以在调用代码中省略类型参数。编译器从函数参数的类型推断类型参数。

请注意,这并不总是可能的。例如,如果您需要调用没有参数的泛型函数,则需要在函数调用中包含类型参数。

在 main.go 中,在您已有的代码下方,粘贴以下代码。

在此代码中:

(1)调用泛型函数,省略类型参数。

从包含 main.go 的目录中的命令行,运行代码。

接下来,您将通过将整数和浮点数的并集捕获到您可以重用的类型约束(例如从其他代码中)来进一步简化函数。

正如您将在本节中看到的,约束接口也可以引用特定类型。

1、编写代码

在此代码中:

b.在您已有的函数下方,粘贴以下通用 SumNumbers函数。

在此代码中:

c.在 main.go 中,在您已有的代码下方,粘贴以下代码。

在此代码中:

(1)调用SumNumbers打印每个map的总和。

与上一节一样,在调用泛型函数时省略了类型参数(方括号中的类型名称)。Go 编译器可以从其他参数推断类型参数。

从包含 main.go 的目录中的命令行,运行代码。

做得很好!您刚刚学习了 Go 中的泛型。


网页标题:go语言代码 go语言代码加密
分享网址:http://ybzwz.com/article/hgipio.html