田猿笔记
这个作者很懒,什么都没留下…
展开
-
Golang 安装
本文旨在帮助初学者了解 Golang 在不同环境下的安装方法,并提供相关资源和参考链接。原创 2023-05-19 17:23:36 · 1029 阅读 · 0 评论 -
学习如何在VS Code中创建一个Golang/Go项目,并运行一个简单的Golang程序
学习如何在VS Code中创建一个Golang项目,并运行一个简单的Golang程序。原创 2023-05-22 10:18:20 · 3373 阅读 · 0 评论 -
Golang/Go 的基本语法
在 Golang 中,每个文件都必须归属于一个包。其中 `add` 是函数名,`x` 和 `y` 是参数,`int` 是返回值类型。以上是 Golang 的基本语法,希望能对你有所帮助。以下我开始Golang 一些基本语法。原创 2023-05-19 10:56:18 · 915 阅读 · 0 评论 -
Golang 特别的语法和特性
最后,在main函数中,我们定义一个Shape类型的变量s,分别将它赋值为Circle和Rectangle类型的值,并调用Area方法计算它们的面积。在main函数中,我们用divide函数并检查返回值,如果返回的err不为nil,说明除法操作失败,我们打印出err的值;在main函数中,我们创建了一个int类型的channel,并在一个goroutine中往这个channel中发送了三个值。然后,在文件的处理过程中,我们可以进行一些操作,最后程序结束时,文件会被动关闭。原创 2023-05-19 11:17:09 · 70 阅读 · 0 评论 -
Golang 接口(interface)
然后,我们创建了一个类型为 `MyInterface` 的变量 `myVar`,并将它设置为 `MyStruct` 的实例。由于 `MyStruct` 实现了 `MyInterface` 中定义的所有方法,因此它被认为是实现了 `MyInterface` 接口的类型,可以被赋值给 `MyInterface` 类型的变量。上面的代码定义了一个名为 `MyInterface` 的接口,它包含两个方法 `Method1` 和 `Method2`,一个返回 `int` 类型,另一个返回 `string` 类型。原创 2023-05-19 15:12:35 · 897 阅读 · 0 评论 -
了解 Golang 类的特点和优势
外观模式是一种结构型设计模式,它可以隐藏系统的复杂性,提供一个简单的接口。在 Golang 类中,外观模式常用于简化类的接口,使得它更易于使用。Golang 是一门支持面向对象编程的语言,它的类和其他语言的类有很大的不同之处。在 Golang 中,类的定义是通过结构体来实现的。你们的支持,就是我的动力。类,我们可以隐藏数据库的连接和查询细节,使得代码更易于理解和维护。的类,它封装了数据库的连接和查询操作。在上面的代码中,我们定义了一个名为。在上的代码中,我们定义了一个名为。例如,我们可以定义一个名为。原创 2023-05-19 15:50:02 · 859 阅读 · 0 评论 -
了解 Golang 中嵌套类型和匿名字段
Employee 结构体通过使用匿名字段的方式嵌套了 Person 结构体,因此 Employee 结构体继承了 Person 结构体的所有字段和方法,包括 name 和 age 字段和 SayHello() 方法。在 main() 函数中,创建了一个 Person 类型的变量 p 和一个 Employee 类型的变量 e,然后分别调用了它们的 SayHello() 方法,输出了不同的结果。在 Golang 中,结构体可以嵌套其他类型,这些被嵌套的类型称为嵌套类型。在一个结构体中,可以有多个匿名字段,原创 2023-05-19 17:04:23 · 662 阅读 · 0 评论 -
Golang 错误处理
除了使用内置的error类型外,我们还可以自定义自己的错误类型,并编写相应的错误处理函数。这可以让我们更好地控制程序中的错误信息,并提供更好的用户体验。if err!= nil {return在这个例子中,我们定义了一个MyError结构体,它包含一个字符串类型的message字段,并实现了Error()方法。然后我们修改了divide函数,使其返回一个指向MyError结构体的指针。在main函数中,我们调用divide函数,并检查返回的error值是否为nil。原创 2023-06-16 11:40:19 · 952 阅读 · 0 评论 -
Golang之并发的开发的详解
在Go语言中,有一个强大的特性——并发。通过并发,我们可以让程序同时执行多个任务,提高程序的效率和性能。本文将为大家介绍Go语言中的并发特性,包括并发编程的基本概念、使用goroutine实现并发、使用channel进行通信等方面。同时,我们还将提供相关的学习代码和分析,帮助大家更好地理解并发编程的实现原理和技巧。原创 2023-06-19 16:05:21 · 815 阅读 · 0 评论 -
Golang 使用goroutine并发处理订单的示例
为了保证每个goroutine都能够独立地处理一部分订单数据,我们根据循环变量i计算了每个goroutine需要处理的订单数据的起始位置和结束位置,并将它们作为参数传递给processOrders函数。与传统的线程相比,goroutine的创建和销毁都非常快速,而且它们的调度是由Go语言的运行时系统自动管理的,因此使用goroutine可以很方便地实现并发编程。然后,在 `processOrders` 函数中,我们遍历每个订单,并使用 `db.Exec` 方法执行 SQL 插入语句将订单保存到数据库中。原创 2023-06-20 17:51:17 · 1095 阅读 · 0 评论 -
Golang 中goroutine、channel 生产环境中例子和应用
在主函数中,我们使用`go`关键字将`getData()`函数放入goroutine中,并在主函数中调用`processData()`函数来处理数据。而如果我们使用goroutine,那么每个请求就可以被看作一个goroutine,可以在同一个线程中同时处理多个请求,从而提高程序的并发性能。接着,我们使用一个`select`语句从channel中读取数据,并将其存储到数据库中。在上面的代码中,我们在每个控制器的`ServeHTTP`方法中使用`go`关键字创建了一个新的goroutine来处理请求。原创 2023-06-21 11:08:15 · 832 阅读 · 0 评论 -
深入了解 Golang 文件操作:从创建到复制,掌握文件读写的基本操作和高效处理大文件的技巧
在 Golang 中,文件操作是日常开发中不可或缺的一部分。本文将介绍如何使用 Golang 进行文件操作的基本操作,包括创建文件、写入文件、读取文件和复制文件。此外,还将探讨如何在不打开文件的情况下进行文件的读写操作,以及如何高效处理大文件。原创 2023-06-26 18:47:21 · 733 阅读 · 1 评论 -
深入了解Golang中多线程读取大文件
在golang中,多线程读取一个大文件是一个常见的需求。本文将详细解释如何实现这个功能,并介绍学习目标和学习内容。原创 2023-06-27 17:22:26 · 999 阅读 · 3 评论 -
用Golang/Go搭建大型电商系统,要用到前后台的技术和框架
微服务是一种软件架构风格,它将一个大型的应用程序拆分为一组小型的、相互独立的服务,每个服务都运行在自己的进程中,通过轻量级的通信机制相互协作。每个服务都有自己的功能和数据存储,可以独立部署、升级和扩展,从而提高了应用程序的可维护性、可伸缩性和可靠性。事务的最终一致性是指,当一个分布式系统中的多个服务对同一数据进行操作时,这些操作可能会发生冲突,导致数据的不一致。为了保证数据的一致性,需要采取一系列手段,确保最终数据达到一致状态。这种手段称为最终一致性。原创 2023-05-22 12:14:53 · 914 阅读 · 0 评论 -
Golang如何在VS Code中配置和调试Gin
Gin是一个使用Go语言编写的Web框架。它通过提供一组简单的API来帮助开发人员构建高性能、可扩展的Web应用程序。原创 2023-05-22 17:04:24 · 1126 阅读 · 0 评论 -
Gin中间件的详解 ,用Jwt-go 和 Gin 的安全的登陆的中间件
Golang 中的 gin 框架允许您在不同的路由组中设置不同的中间件或过滤器。您可以使用group方法创建一个路由组,并在该组中添加中间件或过滤器。在上面的例子中,我们创建了两个路由组/v1和/v2,并在每个组中添加了不同的中间件。这样可以使代码更加模块化和易于维护。原创 2023-05-25 16:51:48 · 1247 阅读 · 0 评论 -
Golang 的JWT 类的详解
这段代码是用 Go 语言实现 JWT 认证的基本功能,以下是对代码的解释和一些潜在的改进建议:JWT 类型代表了 jwt-token 认证的配置,包括了加密和刷新 token 的密钥、token 过期时间等。NewJWT 是用于创建 JWT 实例的工厂函数,它接受一个字符串类型的加密密钥和刷新密钥,还有一个 time.Duration 类型的 token 过期时间。函数返回一个新的 JWT 实例指针。我们可以通过这个实例来实现 jwt-token 的生成和验证。原创 2023-05-26 16:52:00 · 2064 阅读 · 0 评论 -
Golang Gin框架的大型Web项目结构(个人建议)
其中,config存放的是项目的配置信息;controllers存放控制器代码,每个控制器负责处理一组相关的HTTP请求;db存放数据库相关的代码;middleware存放中间件相关的代码,如权限控制、日志记录等;services存放服务层代码,负责处理核心的业务逻辑;main.go是应用程序的入口文件,包括路由的初始化和Web服务的启动。Gin框架并没有提供标准的大型项目结构,但是有一些常见的最佳实践可以参考。以上是一个通用的Gin项目结构,但实际项目中还要根据具体情况进行适当调整和修改。原创 2023-05-29 18:23:59 · 780 阅读 · 0 评论 -
Golang Gin 的路由的详解
路由是 web 应用程序中的一种机制,它将到达服务器的请求与应该处理该请求的代码关联起来。简单来说,路由就是指定在访问某个 URL 时会执行的代码。Gin 使用 HTTP 方法和 URL 路径来定义路由。例如,当一个 GET 请求到达/hello路径时,该请求将被处理并返回一个响应。路由的实现原理是通过在服务器上监听传入的请求,并将其与定义的路由规则进行匹配。当请求与某个路由相匹配时,服务器将执行与该路由关联的代码,并返回响应。原创 2023-05-30 12:24:01 · 1159 阅读 · 0 评论 -
了解Golang 中gin的StaticFS的作用
在 Gin 中引入 CSS 和 JavaScript 文件与其他的 Go Web 框架相似。在 HTML 文件中,你可以使用 `` 标签来引入 CSS 和 JavaScript 文件。在这个例子中,我们使用 `` 标签来引入了和文件。其中,/static是一个基于路由的静态文件服务。我们可以在 Gin 的引擎上注册函数,创建一个路由以供客户端访问静态资源。由于静态文件通常被访问频繁而且不易变更,因此 Gin 使用了一种特殊的方式来有效地“缓存”它们,以减少文件访问的响应时间。可以使用。原创 2023-05-30 18:30:12 · 1304 阅读 · 0 评论 -
(Golang) Gin 模板语法
在编写 Gin 应用程序时,有三种方式使用模板引擎:函数、render.HTML 中间件和 gin.Context.HTML方法。以上是关于 Gin 模板引擎的简单介绍和使用方法,掌握了这些基本特性和用法之后,可以在 Gin 应用程序的开发中使用模板引擎实现更高效的 Web 开发。学习目标:了解 Gin 模板引擎的基本特性和常用语法,掌握在 Gin 框架中使用模板引擎的方法。Gin 模板支持嵌入式模板,可以将一个模板嵌入另一个模板中,从而实现代码的重用。和 Go 模板一样,使用 `{{` 和 `}}`。原创 2023-05-31 12:06:04 · 1028 阅读 · 0 评论 -
了解如何为 Gin Web 框架设置配置文件
1. viper 简介viper 是一个用于 Go 语言的配置文件处理库,它支持 JSON、TOML、YAML、HCL、envfile 和 Java properties 配置文件格式。viper 提供了一种简单的方式来读取和解析配置文件,同时支持环境变量、命令行参数和配置文件的实时重载。2. 安装 viper要在 Go 项目中使用 viper,首先需要安装它。可以使用以下命令安装:3. 使用 viper 读取配置文件。原创 2023-06-01 17:33:40 · 859 阅读 · 0 评论 -
了解 Gin 中的 cookie、session 以及 cache 使用
需要注意的是,虽然这种使用 Cookie 来存储 Session 数据的方式简单,但是 Cookie 数据是存储在浏览器端的,存在被更改和盗用的风险。因此,在实际应用中,需要对 Session 数据进行协议和安全性方面的考虑,比如采用加密和签名等方式,保护 Session 数据的合法性和完整性。3.1: 在使用 `cache.CachePage` 中间件时,当请求的 URL 中的 key 改变时,Gin 会将其视为一个新的 URL,缓存也会重新生成。因此,即使 key 发生了改变,对应的缓存也会随之改变。原创 2023-06-03 17:41:21 · 727 阅读 · 0 评论 -
Golang中Gin 参数绑定和验证的中间件
Gin框架提供了很多常用的中间件,其中就包括参数绑定和验证的中间件。在使用Gin框架中进行数据绑定和验证时,可以使用Gin内置的Binding、Validating和Uri中间件。原创 2023-06-09 17:55:49 · 1866 阅读 · 0 评论 -
Golang中Gin 自定义验证方法
在Gin框架中,可以使用binding标签实现参数的校验。但有些特殊的需求,可能需要自己定义一些校验方法。可以通过binding标签中的自定义函数来添加自定义验证逻辑。// 邮箱正则表达式if!ok {// 添加自定义验证逻辑err!= nil {return})r.Run()在上述代码中,我们通过获取Gin使用的validator引擎,然后使用方法注册email类型的验证函数。在函数中,使用正则表达式来判断邮箱格式是否正确。如果验证失败,返回验证失败的信息。。其中,参数field。原创 2023-06-09 18:38:56 · 1889 阅读 · 0 评论 -
Golang GORM 详解
GORM 是基于 Go 语言的 ORM 库,可使开发者对数据库使用更为方便,支持多种数据库。它提供了许多功能,例如查询构建器、关系映射、事务等。如果要禁用这种自动复数形式的表名名规则还可以用定义表名,可以在模型定义中使用标记该表名,使其与模型的名称保持一致。gorm.ModelAge int在这个示例代码中,我们定义了一个 User 结构体,使用了标记表名为user。并在中自动迁移表结构。此时我们在数据库中看到的表名将为user,而非默认的users。原创 2023-06-14 11:25:04 · 1857 阅读 · 0 评论 -
Golang使用Gin、GORM和MySQL进行三层架构
当使用Golang的Gin、GORM和MySQL进行三层架构的CRUD操作时,你可以按照以下步骤进行:1. 创建Model结构体:首先,创建一个`models`文件夹,并在其中创建一个名为`member.go`的文件。在该文件中定义`Member`结构体,代表数据库中的`member`表,同时添加GORM的标签来映射字段和表格原创 2023-06-15 10:02:16 · 1440 阅读 · 0 评论