一道golang

golang接口用法浅谈

类型接口 Go不是面向对象的语言,在go里通过不同的结构体实现同一组公共接口这种组合的形式实现多态,类似C++的类和虚函数 定义类型接口(Interface Definition): 使用 type 关键字定义接口,指定接口的方法签名。 方法签名由方法的名称、参数列表和返回值组成,但不包含方法体。 ......
接口 golang

golang 和java对比

Java的优点: 跨平台性:Java程序可以在不同的操作系统上运行,只需安装相应的Java虚拟机即可。面向对象:Java是一种面向对象的语言,具有封装、继承和多态等特性,使得代码更加易于维护和扩展。大量的第三方库和框架:Java拥有丰富的第三方库和框架,可以加速开发速度。高性能:Java虚拟机的优化 ......
golang java

golang sync.Map 在函数传参时默认是值传递

## 概要 今天改了一段代码,调用函数时把一个 sync.Map 类型的变量作为传参,在函数内部修改 sync.Map 变量的值,发现函数处理完成后,外部的变量没有修改,后来发现 sync.Map 是一个普通的结构体,跟所有的结构体一样,golang 在把结构体类型作为函数传参时,都是值传递,即创建 ......
函数 golang sync Map

golang编译go build -ldflags "-s -w"的 解释

go build -ldflags "-s -w" 是一个 Go 语言的构建命令,其中使用了 -ldflags 参数来传递一些额外的链接器标志。 这个命令中,-ldflags "-s -w" 传递了两个标志: -s:该标志会禁止生成可执行文件中的符号表信息,这样在执行文件时就不会暴露源代码中的函数名 ......
quot ldflags golang build

golang base64解码

解码过程 1.使用标准库的base64.StdEncoding.DecodeString 最开始是印象标准库有一个base64.StdEncoding.DecodeString方法可以解码,就直接使用了这个方法 package main import( "encoding/base64" "fmt" ......
golang base 64

一道思维题

[题目传送门](https://www.luogu.com.cn/problem/CF1270G) 考虑从第 $i$ 个整数 $a_i$ 满足 $i-n\le a_i\le i-1$ 入手。 但是这样看起来没有什么性质,所以我们考虑将它**变形:**$1\le i-a_i\le n$。 我们发现,如 ......
一道 思维

《来一道经典dp》

给若干个盒子,每个盒子里面有若干个 **本质不同** 的小球,你要从这些盒子中选取小球,问有多少种选取方案使得任意两个相邻的小球不来自于同一个盒子里面(注:全部小球都要选完) 设 $f_{i,j}$ 为选了 $i$ 个数有 $j$ 个位置是不合法的(就是说相邻的小球相同的位置数) 设 $a_x$ 表 ......
一道 经典

jetbrains GoLang设置编写proto文件的实时模板

### 具体步骤 ### 1. 首先,先创建一个模板组,我这里创建为"proto"。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0f650e87ac1d4ffe86b1283975d5a254.png) ### 2.下面这张图是我的模板组中的内容 ![在这里插 ......
实时 jetbrains 模板 文件 GoLang

每天一道面试题:对象引用及垃圾回收

先来看题目 (多选)下面哪些描述是正确的:()【文章末尾有答案】 1 public class Test { 2 public static class A { 3 private B ref; 4 public void setB(B b) { 5 ref = b; 6 } 7 } 8 publi ......
一道 对象 垃圾

golang 新环境下运行项目

## 下载源代码 ``` git clone .. ``` ## 安装依赖 ``` go mod tidy ``` ### 下载慢报错 切换 proxy ``` # 启用 Go Modules 功能 go env -w GO111MODULE=on # 配置 GOPROXY 环境变量,以下三选一 # ......
环境 项目 golang

golang之函数工具库lancet

lancet(柳叶刀)是一个全面、高效、可复用的go语言工具函数库。 lancet受到了java apache common包和lodash.js的启发。 简体中文 | English 特性 👏 全面、高效、可复用。 💪 600+常用 go 工具函数,支持 string、slice、dateti ......
函数 工具 golang lancet

一道小学一年级数学题,国产大模型全军覆没

让8个国产主流大模型做做小学一年级的数学题看看? > 8月31日消息,首批大模型产品将陆续通过《生成式人工智能服务管理暂行办法》(以下简称《暂行办法》)备案,可正式上线面向公众提供服务。其中包括:百度文心一言、抖音云雀大模型、智谱AI的GLM大模型、中科院的紫东太初大模型、百川智能的百川大模型、商汤 ......
数学题 全军覆没 全军 模型 一道

[Go] VsCode 的 Golang 环境设置与代码跳转支持

一般在终端中使用时的配置: export GO111MODULE=on export GOPROXY=https://goproxy.io,direct 在 vscode 中使用的配置: 1. 安装 Go 扩展。 2. Preferences -> Settings -> Extensions -> ......
代码 环境 VsCode Golang Go

golang 爬坑记

太坑了,必须要写个笔记发泄一下! 结构体的坑 首先,我们来看看通常教程会怎么写,此处引用菜鸟教程 1 package main 2 3 import "fmt" 4 5 type Books struct { 6 title string 7 author string 8 subject stri ......
golang

golang 协程、延迟函数调用、以及恐慌和恢复

此篇文章将介绍协程和延迟函数调用。协程和延迟函数调用是Go中比较独特的两个特性。 恐慌和恢复也将在此篇文章中得到简单介绍。本文并非全面地对这些特性进行介绍,后面的其它文章会陆续补全本文的未介绍的内容。 协程(goroutine) 现代CPU一般含有多个核,并且一个核可能支持多线程。换句话说,现代CP ......
函数 golang

golang 配置断点调试

golang 1.8 以下版本安装dlv go install github.com/go-delve/delve/cmd/dlv@v1.7.3 配置如图 配置 gobuild 使用自己的启动语句调试 ......
断点 golang

golang官方包管理vendor模式无法引用非go文件

## 主页 - 微信公众号:密码应用技术实战 - 博客园首页:https://www.cnblogs.com/informatics/ ## 背景&问题 golang作为高级计算机语言之一,在云原生以及web网站建设中发挥了重要作用,但在实际应用中我们可能会碰到以下场景,在该场景下: - 部署机无法 ......
模式 文件 官方 golang vendor

golang中 go get 加 -u 和不加 -u 参数的区别

-u 会更新本地已有的代码包 加上它可以利用网络来更新已有的代码包及其依赖包。如果已经下载过一个代码包,但是这个代码包又有更新了,那么这时候可以直接用 -u 标记来更新本地的对应的代码包。如果不加这个 -u 标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。只有加了 -u 标记,命 ......
参数 golang get go

一道秋招笔试算法题记录

做股票的人总会忍不住幻想:如果知道明天怎样就好了。那么问题来了,如果打开上帝视角,你最好能做到怎样? 真实世界的股票交易规则太复杂,我们这里做一些简化。首先我们假设有N个股票和M个交易期。 可以认为在单个交易期内所有股票的价格都是恒定的。股票卖出需要缴纳交易额的P倍的印花税。股票可以零碎地买卖,即, ......
笔试 算法 一道

golang之增加版本信息功能

在实际开发中,当开发完一个 apiserver 特性后,会编译 apiserver 二进制文件并发布到生产环境,很多时候为了定位问题和出于安全目的(不能发错版本),我们需要知道当前 apiserver 的版本,以及一些编译时候的信息,如编译时 Go 的版本、Git 目录是否 clean,以及基于哪个 ......
版本 功能 golang 信息

golang init函数、defer函数、匿名函数、错误处理

1. init 每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用,当有全局变量跟main函数 init 函数 同时出现的时候 执行的顺序是 全局函数==》init函数==》main函数 package main imp ......
函数 错误 golang defer init

golang常用函数

1.文件读写 package main import ( "fmt" "os" ) func main(){ yaml_str,err:=os.ReadFile("poc/1.yml") if err!=nil{ panic(err) } poc_old:=string(yaml_str) os.W ......
函数 常用 golang

Golang 需要注意的知识点

云笔记链接地址 go的协程轻量级体现在哪 (1) goroutine 是轻量级的用户态线程,上下文切换代价小 go 将 goroutine 的调度维持在用户态 常规线程切换会导致用户态程序代码和内核态操作系统调度程序的切换 只涉及PC(程序计数器,标记当前执行的代码的位置) SP(当前执行的函数堆栈 ......
知识点 知识 Golang

golang中goto跳转语句和跳转标签声明

和很多其它语言一样,Go也支持goto跳转语句。 在一个goto跳转语句中,goto关键字后必须跟随一个表明跳转到何处的跳转标签。 我们使用LabelName:这样的形式来声明一个名为LabelName的跳转标签,其中LabelName必须为一个标识符。 一个不为空标识符的跳转标签声明后必须被使用至 ......
语句 标签 golang goto

Golang设计模式

Golang 设计模式 一、设计模式概述 1.1 概述 如果把修习软件开发当做武功修炼的话,那么可以分为招式和内功。 招式: Java、C#、C++、Golang、Rust等编程语言; Eclipse、Visual Studio、Goland、Vim等开发工具; Struts、Hibernate、J ......
设计模式 模式 Golang

GoLang:字符串

学习自:Go教程141页 1、定义 str1 := "abc" 2、字符串处理函数 所属包:strings 函数 返回值类型 说明 len(str) int 长度 len还能用于统计列表大小 子串出现位置 Index(主串,子串) int 子串出现位置 IndexByte(主串,单字符) 字符出现位 ......
字符串 字符 GoLang

GoLang:异常处理

学习自:Go教程137页 1、异常 程序运行时,发生了不被期望的事件,它阻止程序正常预期的运行 Go中两种处理异常的方式: 程序异常时,将异常信息反馈给使用者 程序异常时,终止运行立刻退出 2、打印异常信息 1)fmt包中的Errorf函数创建error类型,打印 var err error = f ......
GoLang

GoLange:面向对象

学习自:Go教程130页 1、类定义 方式:结构体+方法 结构体:定义有哪些数据 方法:定义结构体的方法 例子:定义一个Person类 //结构体定义人的属性 type Person struct { name string age int } //方法定义人的行为 func (p Person)S ......
对象 GoLange

Golang - Slice 学习笔记

# Slice ## 1、概述: Slice又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。 ## 2、实现原理 ==**Slice依托数组实现,底层数组对用户屏蔽,在底层数组容量不足时可以实现自动重分配并生成新的Slice。接下来按照实际使用场景分别介绍其实现机制。 ......
笔记 Golang Slice

GoLang:指针

学习自:GoLang教程110页 1、普通指针 说明 指针变量用于存放其他变量的地址 无论指向什么类型的变量,指针的实际内存占用都是一样的:32位4B,64位8B: var p1 *int; var p2 *float64; var p3*bool; fmt.Println(unsafe.Sizeo ......
指针 GoLang