刷新
go基础-泛型

概述 在强类型变成语言中,类型是确定不可变,如函数入参是确定类型、链表元素是确定类型,这极大限制了函数功能。也有些解决方案,为每种类型都实现一版函数,会导致大量重复代码;使用类型转换,使用特殊形参(如Object、any),在函数内部判断并转换类型后再执行逻辑,导致大量类型转换的代码,结构混乱,Ja ...

Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍

博主头像 Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍 目录Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍一、前置原则二、一切皆组合2.1 一切皆组合2.2 垂直组合2.2.1 第一种:通过嵌入接口构建接口2.2.2 第二种:通过嵌入接口构建结构体类型2.2.3 第三种:通过嵌入结构体类型构 ...

Go 接口:nil接口为什么不等于nil?

博主头像 Go 接口:nil接口为什么不等于nil? 本文主要内容:深入了解接口类型的运行时表示层。 目录Go 接口:nil接口为什么不等于nil?一、Go 接口的地位二、接口的静态特性与动态特性2.1 接口的静态特性与动态特性介绍2.2 “动静皆备”的特性的好处三、nil error 值 != nil四、接 ...

kubelet 原理分析

博主头像 Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是数据面最主要的组件,在每个节点上启动,主要负责容器的创建、启停、监控、日志收集等工作。它是一个在每个 ...

go 中如何实现定时任务

博主头像 定时任务简介 定时任务是指按照预定的时间间隔或特定时间点自动执行的计划任务或操作。这些任务通常用于自动化重复性的工作,以减轻人工操作的负担,提高效率。在计算机编程和应用程序开发中,定时任务是一种常见的编程模式,用于周期性地执行某些操作、处理数据或触发事件。 以下是一些关于定时任务的重要概念: 时间间 ...

Go 接口-契约介绍

博主头像 Go 接口-契约介绍 目录Go 接口-契约介绍一、接口基本介绍1.1 接口类型介绍1.2 为什么要使用接口1.3 面向接口编程1.4 接口的定义二、空接口2.1 空接口的定义2.2 空接口的应用2.2.1 空接口作为函数的参数2.2.2 空接口作为map的值2.3 接口类型变量2.4 类型断言三、尽 ...

Go类型嵌入介绍和使用类型嵌入模拟实现“继承”

博主头像 Go类型嵌入介绍和使用类型嵌入模拟实现“继承” 目录Go类型嵌入介绍和使用类型嵌入模拟实现“继承”一、独立的自定义类型二、继承三、类型嵌入3.1 什么是类型嵌入四、接口类型的类型嵌入4.1 接口类型的类型嵌入介绍4.2 一个小案例五、结构体类型的类型嵌入5.1 结构体类型的类型嵌入介绍5.2 小案例 ...

Go 方法集合与选择receiver类型

博主头像 Go 方法集合与选择receiver类型 目录Go 方法集合与选择receiver类型一、receiver 参数类型对 Go 方法的影响二、选择 receiver 参数类型原则2.1 选择 receiver 参数类型的第一个原则2.2 选择 receiver 参数类型的第二个原则三、方法集合(Met ...

Go 方法介绍,理解“方法”的本质

博主头像 Go 方法介绍,理解“方法”的本质 目录Go 方法介绍,理解“方法”的本质一、认识 Go 方法1.1 基本介绍1.2 声明1.2.1 引入1.2.2 一般声明形式1.2.3 receiver 参数作用域1.2.4 receiver 参数的基类型约束1.2.5 方法声明的位置约束1.2.6 如何使用方 ...

Go语言基准测试(benchmark)三部曲之三:提高篇

博主头像 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 -《Go语言基准测试(benchmark)三部曲》已近尾声,经历了《基础篇》和《内存篇》的实战演练,相信您已熟练掌握了基准测试的常规操作以及各种 ...

数组 vs. 切片

博主头像 在Go编程语言中处理数据时,经常会遇到数组和切片。这两者是不同的数据结构,有各自的特性和用途。本文将对Go中的数组和切片进行比较,以帮助大家更好地理解它们。 1. 长度不同 一个主要的区别是长度。在Go中,数组是具有固定长度的数据结构,一旦创建,其大小不可更改。相比之下,切片具有动态大小,可以在运行 ...

Go语言基准测试(benchmark)三部曲之二:内存篇

博主头像 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Go语言基准测试(benchmark)三部曲》的第二篇,目标是掌握如何用基准测试来观察被测方法的内存分配情况 今天除了常规的操作,即指定 ...

Go语言数组与切片学习总结

博主头像 一.数组 数组的定义:相同类型的数据集合 go语言中数组的索引从0开始 没有赋值的数值型数组,默认值为0 数组一旦被创建,它的大小就是不可改变的 (1)声明数组与打印 var 变量名 [大小]变量类型 //数组的声明 var nums [4]int //数组的赋值 nums[0] = 1 nums[ ...

用go封装一下临时token

博主头像 用go封装一下临时token 本篇为用go设计开发一个自己的轻量级登录库/框架吧 的临时token篇,会讲讲临时token的实现,给库/框架增加新的功能。 Github:https://github.com/weloe/token-go 临时token也算是比较常见的业务,例如登录验证码信息,邀请链 ...

Go语言函数详解

博主头像 函数 (1)函数的定义 函数使用func进行定义 函数是基本的代码块,用于执行一个任务 Go语言至少有一个main函数 函数声明告诉了编译器函数的名称,返回类型和参数 //1.无参数无返回值函数的定义 func test1(){ fmt.Println("无参数无返回值函数的定义\n") } //2 ...

<1···678···20>