golang算法篇之0-1背包算法介绍

[TOC]前言本篇是基于《代码随想录》加上自己做题时的一些思考整理出来的。希望对大家理解0-1背包问题有所帮助。一、0-1背包问题引入问题描述: 给定一组物品,每个物品都有自己的重量和价值,以及一个固定的容量的背包。目标是找到一个最佳的组合,使得放入背包的物品的总重量不超过背包容量,且总价值最大。基本思想: 将问题划分为若干个子问题,通过解决子问题得到原问题的最优解。对于每个物品,可以选择放...

GO 2024-04-06 PM 1216次 1条

golang算法篇之kmp算法介绍

[TOC]一、题目描述LeetCode 28. 找出字符串中第一个匹配项的下标给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。示例 1:输入:haystack = "sadbutsad", nee...

GO 2024-04-06 PM 1364次 0条

golang之gorm操作示例并兼容达梦数据库

[TOC]前言关于gorm的概念和安装本篇将不做过多赘述,本篇只针对Gorm的简单使用进行讲述。同时本篇使用的是beego框架,兼容MySQL和达梦数据库。达梦数据库gorm驱动可以使用:https://github.com/Leefs/gorm-driver-dm在该驱动中小编解决了达梦双单引号转义问题同时在编码过程中会存在以下三个问题:添加语句中无法返回自增ID驱动中dmSchema.C...

GO 2024-03-31 PM 1670次 0条

golang基础使用示例

[TOC]一、map、slice简单使用示例(1)使用 slice 存储 map 列表import "fmt" // 使用 slice 存储 map 列表 func main() { // 创建一个空的 map 切片 // data是一个切片,其元素类型是map[string]int // data可以包含多个map,每个map的键是字符串类型,...

GO 2024-03-31 PM 1349次 0条

golang之context介绍

[TOC]一、Context作用context.Context是Go中定义的一个接口类型,从1.7版本中开始引入。其主要作用是在一次请求经过的所有协程或函数间传递取消信号及共享数据,以达到父协程对子协程的管理和控制的目的。需要注意的是context.Context的作用范围是一次请求的生命周期,即随着请求的产生而产生,随着本次请求的结束而结束。二、基本数据结构在context包中,conte...

GO 2024-01-26 PM 1226次 0条

go并发之channel底层实现原理

[TOC]前言在开始本章节之前还是要反复唠叨一句话:Go channel设计模式是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。如果不理解的可以看之前的文章,本章节不再过多赘述。一、核心数据结构1.1 hchanGo语言channel是first-class的,意味着它可以被存储到变量中,可以作为参数传递给函数,也可以作为函数的返回值返回。作为Go语言的核心特征之一,虽然...

GO 2024-01-19 PM 1624次 0条

go并发之channel

[TOC]一、channel的发送与接收特性Go 语言中最常见的、也是经常被人提及的设计模式就是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。在很多主流的编程语言中,多个线程传递数据的方式一般都是共享内存,为了解决线程竞争,我们需要限制同一时间能够读写这些变量的线程数量,然而这与 Go 语言鼓励的设计并不相同。下面是多线程之间使用共享内存实现传递数据图示。虽然我们在 Go...

GO 2024-01-18 PM 1535次 0条

10.Beego框架ORM原生SQL查询

[TOC]一、概述beego orm包除了支持model查询的方式,也支持直接编写sql语句的方式查询数据。sql原生查询有如下特点:使用 Raw SQL 查询,无需使用 ORM 表定义多数据库,都可直接使用占位符号 ?,自动转换查询时的参数,支持使用 Model Struct 和 Slice, Array在遇到比较复杂的查询的时候,使用sql语句更加灵活和直观,也比较容易把控sql查询的性...

GO 2022-08-05 PM 1958次 2条

09.Beego框架ORM高级查询

[TOC]前言ORM 以 QuerySeter 来组织查询,每个返回 QuerySeter 的方法都会获得一个新的 QuerySeter 对象。一、基本使用o := orm.NewOrm() // 获取 QuerySeter 对象,user 为表名 qs := o.QueryTable("user") // 也可以直接使用 Model 结构体作为表名 qs = o.Q...

GO 2022-08-05 PM 1298次 0条

08.Beego框架ORM介绍

[TOC]一、介绍对象关系映射(Object Relational Mapping,简称ORM), 它的作用是映射数据库和对象之间的关系,方便我们在实现数据库操作的时候不用去写复杂的sql语句,把对数据库的操作上升到对于对象的操作。beego ORM 是一个强大的 Go 语言 ORM 框架。它的灵感主要来自 Django ORM 和 SQLAlchemy。它支持go语言中所有的类型存储,允许...

GO 2022-08-04 AM 2770次 0条