掘友等级
获得徽章 0
#挑战每日一条沸点#
Day17
Gin 中路由规则的存储,是通过前缀树来实现的,然后对于GET ,POST 方法,会分别定义一颗前缀树,互不干扰。
#挑战每日一条沸点#
Day16
在进行 Context 的传递时,我们需要保证传递的 Context 对象是原始 Context 对象的子 Context,以便在需要取消操作时能够同时取消所有相关的 goroutine。如果传递的 Context 对象不是原始 Context 对象的子 Context,则取消操作只会影响到当前 goroutine,而无法取消其他相关的 goroutine。
#挑战每日一条沸点#
Day15
Go 类型和 JSON 类型的对应关系如下:
bool 代表 JSON booleans,
float64 代表 JSON numbers,
string 代表 JSON strings,
nil 代表 JSON null.
#挑战每日一条沸点#
Day14
前缀树
前缀树又叫 trie树,是一种基于字符串的公共前缀字符索引的树状结构:
除了根节点,每个节点都对应着一个字符
一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,在这里的表现就是,当前节点,于它的所有父节点结合,即为该节点对应的字符串.
#挑战每日一条沸点#
Day13
要想评价一个 GC 算法,大概可以从以下几个方面进行:
安全性(Safety):指垃圾回收器不应回收存活的对象;
吞吐率(Throughput):指垃圾回收器花在 GC 上的时间占程序执行总时间的比率;
暂停时间(Pause time):指垃圾回收导致业务线程挂起(暂停)的时间(GC 导致的暂停被称为 stop the world, STW)
内存开销(Space overhead):指垃圾回收器元数据占用的内存开销;
#挑战每日一条沸点#
Day12
简短声明的变量只能在函数内部使用
struct 的变量字段不能使用 := 来赋值
不能用简短声明方式来单独为一个变量重复声明, := 左侧至少有一个新变量,才允许多变量的重复声明
#挑战每日一条沸点#
Day11
外部联结:联结包含了那些在相关表中没有关联行的行。这种类型的联结称为外部联结。 与内部联结关联两个表中的行不同的是,外部联结还包括没有关联行的行。在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)
#挑战每日一条沸点#
Day10
中间件会按定义的先后顺序依次执行,如果想快速终止中间件调用,可以使用以下方法,注意当前中间件仍将执行。
Abort():终止后续调用
AbortWithMsg(msg string, statusCode int):终止后续调用,并设置 response中body,和状态码
AbortWithStatus(code int):终止后续调用,并设置状态码
#挑战每日一条沸点#
Day9
当使用结构体作为查询条件时,只会查询结构体内的非零值字段,这意味着字段值为 0, '', false 或其他零值的字段不会被用于构建查询条件。
#挑战每日一条沸点#
Day 8
GORM 提供了 gorm.DeletedAt 用于帮助用户实现软删除。
拥有软删除能力的 Model 调用 Delete 时,记录不会被从数据库中真正删除。但 GORM 会将 DeletedAt 置为当前时间,并且你不能再通过正常的查询方法找到该记录。
使用 Unscoped 可以查询到被软删的数据。
下一页