[Go疑難雜症]為什麼nil不等於nil

  • 2022 年 10 月 27 日
  • 筆記

现象 在日常开发中,可能一不小心就会掉进 Go 语言的某些陷阱里,而本文要介绍的 nil ≠ nil 问题,便是其中一个,初看起来会让人觉得很诡异,摸不着头脑。 先来看个例子: type CustomizedError struct { ErrorCode int Msg string } func …

Continue Reading

Go素數篩選分析

  • 2022 年 10 月 18 日
  • 筆記

Go素数筛选分析 1. 素数筛选介绍 学习 Go 语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某大佬的代码,短短几行代码就实现了素数筛选。但是自己看完原理和代码后一脸懵逼(仅此几行能实现素数筛选),然后在网上查询相关资料,依旧似懂非懂。经过1天的分析调试,目前基本上掌握了的原理。 …

Continue Reading

Go 互斥鎖Mutex

  • 2022 年 10 月 18 日
  • 筆記

Mutex是一个互斥锁,可以创建为其他结构体的字段;零值为解锁状态。Mutex类型的锁和线程无关,可以由不同的线程加锁和解锁。 互斥锁的作用是保证共享资源同一时刻只能被一个 Goroutine 占用,一个 Goroutine 占用了,其他的 Goroutine 则阻塞等待。 1、数据结构 type …

Continue Reading

Go_gin許可權驗證

  • 2022 年 10 月 12 日
  • 筆記

权限管理 Casbin是用于Golang项目的功能强大且高效的开源访问控制库。 1. 特征 Casbin的作用: 以经典{subject, object, action}形式或您定义的自定义形式实施策略,同时支持允许和拒绝授权。 处理访问控制模型及其策略的存储。 管理角色用户映射和角色角色映射(RB …

Continue Reading

Golang可能會踩的58個坑之初級篇

  • 2022 年 10 月 11 日
  • 筆記

前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的 …

Continue Reading

Go Micro介紹與入門

  • 2022 年 10 月 10 日
  • 筆記

一 什么是Micro? Micro是一个微服务生态系统,致力于提供产品,服务和解决方案,以实现现代软件驱动型企业的创新。我们计划成为任何与微服务相关的事实资源,并期待公司能够利用这项技术为自己的业务。从早期的原型开始一直到大规模的生产部署。 我们已经看到行业发生根本性转变。摩尔定律是有效的,我们每天 …

Continue Reading

Go_Channel詳解

  • 2022 年 10 月 10 日
  • 筆記

一 channel介绍 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内存进行加锁,这种做法势必造成性能问题。 Go语言的并 …

Continue Reading

Go_Goroutine詳解

  • 2022 年 10 月 10 日
  • 筆記

Goroutine详解 goroutine的概念类似于线程,但 goroutine是由Go的运行时(runtime)调度和管理的。Go程序会智能地将 goroutine 中的任务合理地分配给每个CPU。Go语言之所以被称为现代化的编程语言,就是因为它在语言层面已经内置了调度和上下文切换的机制。 在G …

Continue Reading

gorm中的關聯操作詳解

  • 2022 年 10 月 9 日
  • 筆記

一对一 belong to 属于:可以理解为舔狗认为自己属于女神,而女神都不知道舔狗的存在 type Girl struct { Id int Name string } type Dog struct { Id int Name string GirlId int Girl Girl } 迁移 s …

Continue Reading