go学习笔记 炒土豆丝

Agent Memory 工程实践 :用 Go + PostgreSQL 构建可证明、可撤销的长期记忆 状态对外含义必需证据revoked删除事务已提交;新权威复核排除旧代主库 Epoch 与删除请求在线存储和派生载体完成清理每个 carrier 的 purge receipt备份、日志、导出和模型服务等已到期或完成适用清理保留策略与外部系统记录“24 小时”只能是经验证的产品目标,不能泛化成法律或物理擦除保证。API 应返回请求 ID、当前状态、已覆盖与未覆盖范围,而非一个含混的success。删除事件到达后,标记相关工作集失效。 阅读详情

今天的主菜是土豆,就来个土豆丝吧。我的大致流程如下:
1.挑选白瓤土豆,洗它
2.土豆去皮
3.土豆切片,切丝,丝要粗细均匀
4.清洗几遍土豆丝,去除上面的淀粉,在清水中泡一小会
5.起锅,放适量水,烧开[适量实在是太抽象了]
6.备好葱花、姜丝、蒜、青/红辣椒丝
7.放入土豆丝,焯致八九分熟,或者看到土豆丝表面晶莹剔透,即可捞出放入凉水中
8.起锅,放油,放花椒、姜丝、辣椒丝
9.放入土豆丝快速翻炒
10.放入适量盐,蒜沫,翻炒一下
11.放入适量醋,再翻炒一下
12.出锅盛盘
13.撒上些葱花,开吃

package main

import (
	"fmt"
	"math/rand"
	"time"
)

// 定义常量,默认清洗时间
const default_wash_second int = 1

// 常量,土豆瓤的颜色
const (
	white  = "WHITE"
	yellow = "YELLOW"
)

/*******************************************************************************
 * 挑选土豆
 * color 土豆瓤的颜色
 ******************************************************************************/
func select_potato(color string) {
	fmt.Println("使用的是 [", color, "] 土豆")
}

/*******************************************************************************
 * 清洗土豆
 * sec 清洗时间,单位秒
 ******************************************************************************/
func wash_potato(sec uint) {
	fmt.Println("正在清洗土豆")
	time.Sleep(time.Duration(sec) * time.Second)
	fmt.Println("清洗完毕")
}

/*******************************************************************************
 * 去除土豆表皮
 * sec 清洗时间,单位秒
 ******************************************************************************/
func peel_potato(sec uint) {
	fmt.Println("正在去除土豆表皮,只是表皮,去除多了会浪费土豆")
	time.Sleep(time.Duration(sec) * time.Second)
	fmt.Println("去除土豆表皮完毕")
}

/*******************************************************************************
 * 将土豆切丝,土豆丝不是越细越好,而是要粗细均匀,宽厚一致,截面为正方形,
 * 土豆丝可以轻易捻动
 * width 土豆丝的宽度及厚度
 * sec 清洗时间,单位秒
 ******************************************************************************/
func shred_the_potato(width, sec uint) {
	fmt.Println("正在将土豆切成 [", width, "] mm 厚的薄片")
	time.Sleep(time.Duration(sec) * time.Second)
	fmt.Println("切片完成,准备切丝")
	fmt.Println("正在将土豆片切成 [", width, "] mm 厚的土豆丝")
	time.Sleep(time.Duration(sec) * time.Second)
	fmt.Println("土豆丝已切好")
}

/*******************************************************************************
 * 清洗土豆丝,清洗的目的是去除其表面的淀粉,这样炒出的土豆丝口感脆爽
 * 洗致水依然清澈,则可以不再清洗了,times并不是判断是否清洗好的标准
 * times 清洗次数
 ******************************************************************************/
func wash_potato_shreds(times uint) {
	var i uint = 0
	for i < times {
		fmt.Printf("第[%d]遍清洗\n", i+1)
		time.Sleep(time.Duration(default_wash_second) * time.Second)
		i++
	}
	fmt.Println("土豆丝已清洗好,浸泡片刻,这水好清澈啊......")
}

/*******************************************************************************
 * 取出土豆丝,准备使用
 ******************************************************************************/
func get_potato_shreds() {
	fmt.Println("沥干水分,取出土豆丝")
}

/*******************************************************************************
 * 烧水,准备焯土豆丝用
 ******************************************************************************/
func heat_up_water() {
	fmt.Println("起锅,放入适量水,直到烧开")
}

/*******************************************************************************
 * 趁烧水的空档,准备辅料
 ******************************************************************************/
func prepare_others() {
	fmt.Println("趁烧水的时间,准备辅料")
	time.Sleep(time.Duration(default_wash_second) * time.Second)
	fmt.Println("姜切丝、青红辣椒切丝")
	time.Sleep(time.Duration(default_wash_second) * time.Second)
	fmt.Println("切葱花、剁蒜沫")
	time.Sleep(time.Duration(default_wash_second) * time.Second)
	fmt.Println("辅料已备好")
}

/*******************************************************************************
 * 焯土豆丝
 ******************************************************************************/
func blanch_potato_shreds() {
	get_potato_shreds()
	fmt.Println("将土豆丝放入开水中,焯致八分熟\n捞出土豆丝放入凉水中备用")
	time.Sleep(time.Duration(default_wash_second) * time.Second)
}

/*******************************************************************************
 * 炒土豆丝喽
 ******************************************************************************/
func fry_potato_shreds() {
	fmt.Println("起锅,加入适量油,待油热,加入花椒、姜丝、辣椒丝,煸炒一下")
	time.Sleep(time.Duration(default_wash_second<<1) * time.Second)
	get_potato_shreds()
	fmt.Println("将土豆丝放入锅中,快速翻炒")
	time.Sleep(time.Duration(default_wash_second<<2) * time.Second)
	fmt.Println("加入蒜沫、适量盐,翻炒一下")
	time.Sleep(time.Duration(default_wash_second<<1) * time.Second)
	fmt.Println("加入适量醋,翻炒一下")
	time.Sleep(time.Duration(default_wash_second) * time.Second)
	if 0 == get_rand_number() {
		fmt.Println("出锅盛盘,撒上些葱花,开始享用啦")
	} else {
		fmt.Println("没控制好火候,炒糊啦!吃还是不吃,这是个问题啊")
	}

	time.Sleep(time.Duration(default_wash_second<<2) * time.Second)
}

/*******************************************************************************
 * 获取炒制成功或失败的标志
 ******************************************************************************/
func get_rand_number() int {
	my_rand := rand.New(rand.NewSource(time.Now().UnixNano()))

	return my_rand.Int() % 2
}

/*******************************************************************************
 * 炒好菜即刷锅,还是吃过菜后刷,好纠结啊
 ******************************************************************************/
func clear() {
	fmt.Println("不要忘记刷锅 -*-_-*-")
}

/*******************************************************************************
 * 制作流程
 ******************************************************************************/
func cook() {
	var sec uint = 1
	var width, times = uint(3), uint(4)

	select_potato(white)
	wash_potato(sec)
	peel_potato(sec)
	shred_the_potato(3, sec)
	wash_potato_shreds(4)
	heat_up_water()
	prepare_others()
	blanch_potato_shreds()
	fry_potato_shreds()
	clear()
}

/*******************************************************************************
 * guess what
 ******************************************************************************/
func main() {
	cook()
}

烹饪这道菜,我至少学会了如何使用 go 的标识符,变量、常量、注释、运算符及函数等。接下来做个总结:
[注]:很大部分来自官网,感兴趣的可以去逛逛。
通过前面hello world那篇简单的入门,我们知道第一行中的 package 是用来定义包的。

注释

注释主要起说明作用。好的注释可以方便别人及自己理解程序。
go 的注释有两种,分别为 Line comments(//) 和 General comments(/* */)

注释描述
Line comment从 // 开始到当前行结束
General comment从 /* 开始,到第一个 */ 结束

可以看到,go 与 C(C99)/C++ 中的注释风格是一致的。

示例

	// 这是一个Line comment
	/* 这是一个general comment,但是这个注释与行注释的表现是一样的 */
	/* 这也是一个general comment,
   	它的表现就和行注释不一样了 */

标识符

标识符,用来给程序中的实体命名。比如对变量,函数,结构体等命名,说白了就是给不同类型的变量起个唯一能标识它们的名字,仅此而已。
go 中合法的标识符,由一到多个字母、数字、下划线组成,且首字母不能为数字。注意,这里的字母是Unicode字母,即汉字可以作为变量名,但最好还是使用英文字符。

除了 go 使用 Unicode 字符作为标识符外,其他规则与 C/C++ 是一致的。

关键字

说到标识符,就不能不提关键字,关键字是 go 预先定义好的标识符,我们只能使用它们,而不能将它们用作自己的标识符。

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

结合着C/C++,Java,Python等,也就只有几个别的关键字没见过了,对 go 的恐惧一下子就减少了很多。

除了上面的 25 个关键字外,go 还预字义了以下的标识符,它们是全局的,仔细看一下,是不是很多也不陌生。
Types:(21个)

boolbytecomplex64complex128errorfloat32float64
intint8int16int32int64runestring
uintuint8uint16uint32uint64uintptr

Constants:(3个)

truefalseiota

Zero value:(只此一个)

nil

Functions:(15个)

appendcapclosecomplexcopydeleteimaglen
makenewpanicprintprintlnrealrecover

感觉有些多且乱?没关系,多见几次就熟悉它们了。

【2026年华为暑期实习(AI)-4月8日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试) 答案与解析 1. 相关系数问题 答案:C. 完全负线性相关 解析:相关系数ρ=-1表示X和Y之间存在完全负线性相关关系,所有数据点都严格落在一条斜率为负的直线上。 2. 矩阵秩问题 答案:B. Σ的对角线上非零奇异值的个数 解析:矩阵A的秩等于其奇异值矩阵Σ中非零奇异值的个数,因为U和V都是正交矩阵,不改变矩阵的秩。 3. 条件概率问题 答案:B. 0.5 解析:根据全概率公式和贝叶斯公式计算,P(B)=0.5×0.4+0.3×0.6=0.38,P(A|B)=(0.5×0.4)/0.38≈0.526,最接近 阅读详情

相关推荐

通达信浮筹多空波段抓牛擒龙指标公式源码

VAR33:=VA3>=REF(VA4,1) AND C<REF(C,1) AND VAR19=60 AND VAR18=0 AND 活跃线>=REF(活跃线,1) AND VA12<REF(VA13,1);DRAWTEXT(VAR28 AND COUNT(VAR28,30)=1,65,' ★超涨注意风险'),COLOR0000FF;DRAWTEXT(VAR26 AND COUNT(VAR26,30)=1,90,' ←继续等'),COLOR00FFFF;浮筹线:VA3,COLORFF00FF;

2401_86043146的博客 5257

普通家庭炒土豆丝

炝炒土豆丝。

新广州人的网络安全 253

Multisim仿真电路:(十二)MOS管缓启动电路设计与优化

本文详细介绍了基于Multisim的MOS管缓启动电路设计与优化方法。通过分析米勒平台效应,探讨RC参数选择、多级设计和有源电路等技巧,有效抑制冲击电流并优化开关损耗。文章结合仿真实例,提供实用的设计策略和实际应用注意事项,帮助工程师提升电源管理系统的可靠性。

pytorch8learner的博客 237

炒土豆丝

先上成品图 1. 炒土豆丝原料:土豆、油、醋、辣椒、盐、葱、姜、蒜 土豆切丝,放入水中泡10分钟 葱蒜切片、姜切丝,根据口味决定是否切辣椒末 油入锅烧七八成熟,加入上述调料,爆香后加入土豆丝翻炒 翻炒过程中,当锅中干燥时可以随时加水,避免粘锅 出锅前加入适量醋翻炒一下

yuanfang_way的博客 1702

ST-LINK调试STM32H743必看:CubeMX工程中缺失的这行代码导致程序跑飞

本文深入剖析了使用ST-LINK调试STM32H743时,因CubeMX工程中缺失电源电压档位配置代码而导致程序跑飞或出现“Can not access memory”错误的问题。文章解释了H7系列电源与时钟耦合的核心原理,提供了具体的代码修复方案和系统化的调试排查思路,帮助开发者从根本上解决这一常见调试困境。

weixin_29191669的博客 280

机器学习入门基础 | 基于python的高光谱图像特征挖掘:PCA + 形态学属性处理可视化实战

本文介绍了一种基于PCA和形态学操作的高光谱图像特征提取方法。通过主成分分析降低数据维度,再运用面积开闭操作增强空间结构特征,有效去除噪声并填补孔洞。实验采用WHU-HI-HanChuan数据集,提供完整的Python实现代码,包括数据加载、PCA降维、形态学处理及结果可视化等步骤。该方法能够显著改善图像质量,为后续分类和变化检测任务提供更好的特征输入。实验结果表明,不同阈值的形态学处理能呈现不同程度的空间结构增强效果,对区域生长、分割和聚类等应用具有重要价值。

lestatlu的博客 1045

AI写代码竟然在“作弊“?Weco AI揭开编程智能体的惊天秘密

AI写代码竟然在"作弊"?Weco AI揭开编程智能体的惊天秘密

weixin_49122920的博客 193

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 618

Go AI Agent 实战 26|Agent 的 Observe、Think、Act 与执行循环

本课通过Go手写实现Agent最小执行循环,明确Observe、Think、Act三环节职责:Observe提炼当前状态,Think基于规则决策下一步,Act执行真实动作并更新状态。使用模拟工具与确定性Planner,完整演示任务从查询文章、读取正文到生成总结的闭环流程,支持轮次追踪、预算控制及多种终止状态(成功、失败、取消、超限),验证了Agent核心逻辑的可运行性与健壮性。

2302_80713883的博客 194

第95节:多模型多卡推理管理

多模型推理:在同一硬件平台上同时部署多个不同或相同的深度学习模型,满足多任务需求。多卡推理:利用多块 GPU 资源,提升推理吞吐量与并发能力。目标:合理分配 GPU 资源,实现高效、低延迟的推理服务。

yumeiguo的博客 217

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1794

LeetCode 1861. 旋转盒子|Go 双指针解法

j >= 0,如果写成j>0,会漏掉第 0 列,最左侧石头处理失败旋转矩阵行列互换:原 m 行 n 列 → 结果 n 行 m 列,make 数组长度不要写反旋转公式m-1-i:是原总行数 m,不是 n!很容易写成n-1-i区分:本题和轮转数组(189)分组循环不一样!189:所有元素固定移动 k 步,需要 gcd 分组1861:障碍物分割成多个独立段,石头向段末尾挤,用双指针更合适。

2503_92676540的博客 175

【WRF-Urban】WUDAPT详解:An Urban Weather, Climate, and Environmental Modeling Infrastructure

WUDAPT详解:An Urban Weather, Climate, and Environmental Modeling Infrastructure

WW、forever的博客 497

Redis 从 0 到 1(二十七):JSON 体积是 Protobuf 的 3.7 倍?3 种序列化的 Go 基准测试

缓存对象直接用 json.Marshal,1 亿条 key 多花 20G 内存和 3 倍带宽。本文对 JSON / MessagePack / Protobuf 做 Go 基准测试(体积、编解码耗时、CPU),给出不同场景的选型表和统一序列化封装。

2501_92769340的博客 164

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

cpuprof.go开关、缓冲区与记账

本文详解Go语言CPU剖析的全链路机制,核心为定时信号触发栈采样、环形缓冲存储与异步写入。通过实验验证了64帧栈深度限制、1MiB缓冲区容量及样本丢失计数机制,揭示了SetCPUProfileRate控制采样频率、add函数处理信号中断、addExtra上报丢失样本等关键流程,并解析了跨平台差异与废弃特性。

不愿言弃-念何的博客 348

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms

联犀Go视频转码实战:在352×288测试流中单帧单核CPU耗时从16.5ms到5.46ms,区分SIMD、代码及编码策略的综合收益。保留测试条件、压测结果与适用边界。

QQ603785348的博客 330

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Go AI Agent 实战 30|Human-in-the-loop:关键操作前的人工确认

本课聚焦高风险操作的审批机制,强调仅靠Prompt无法保障安全,需在Go后端实现严格的HITL流程。通过定义waiting_approval状态、绑定具体操作与版本校验,确保审批可追溯、防并发漂移。示例展示任务状态管理、审批请求持久化及批准后重新验证逻辑,实现安全可靠的高风险操作执行。

2302_80713883的博客 248

运行go web服务,检测mysql服务和端口

如果你的窗口里显示的是别的报错文字(比如 ‘xxx’ 不是内部或外部命令、系统找不到指定的路径、或 Go 编译报错),把那几行原文发我,我再精确修——不过现在这版 bat 已经把最常见的三个坑(数据库、端口、闪退看不到错误)都堵上了。启动 MySQL:用干净的 my.ini 直接起 mysqld.exe(绕开 phpstudy 面板配置),验证连通:oa_admin_rule 554 行、oa_admin 2 行,数据完好。服务本身还能起来,但登录、菜单全依赖数据库,所以你看到的是红色警告 + 登录失效。

xinhuanjieyi的博客 157

cpuprof.go栈回溯、定时器与平台差异

sigprof() 信号处理器从寄存器状态出发,通过多路径回溯栈帧(含 CGO、vDSO、系统调用等),最多采集64帧,失败时归入 _System 等伪函数。采样结果双写至 pprof 和 trace,实现零成本共享。setcpuprofilerate() 通过关闭旧定时器、设置新频率并触发信号,确保采样精准可控,避免死锁与抢占干扰。

不愿言弃-念何的博客 40

成为全栈·Go 后端篇·Go 后端怎么测试:从成功响应到故障后置状态

Go 后端重写需要哪些测试证据?本文根据 M6 实际验证报告,梳理 68 个 operation 工作流、逐操作鉴权输入边界、数据库后置状态、事务失败注入、时间与并发、三种真实数据库、Node/Go 差分和四客户端请求层 smoke 的覆盖范围。文章列出实际请求/差分数字,同时明确替身、UI、线上和部署证据的限制。

FungLeo's Blog 220

2026-11-05-Go内存管理面试

内存分配器分层、三色标记、写屏障、STW、内存泄漏——Go 内存管理这块面试最容易问懵。这篇把分配器到 GC 到泄漏排查串成十连问,每题配答案框架和追问应对,文末给 GC 调优对照表。

利威尔的博客,主要分享一些go后端,agent相关知识,都是最新最前沿而且是免费的,在我的专栏里有各种方向的详细分类和内容整理,详细内容请阅读主页置顶文章,希望对你有帮助。 360

Go 工程化详解:项目结构、代码规范、测试体系与 CI/CD 实践

微服务;API 网关;云原生基础设施;命令行工具;区块链服务;实时数据处理系统;DevOps 平台;高并发网络服务。目录应该如何划分;业务代码应该放在哪里;包之间如何避免循环依赖;配置和密钥如何管理;错误如何统一处理;日志如何关联请求;如何安全地启动和关闭服务;如何编写单元测试和集成测试;如何管理数据库变更;如何保证每次构建结果一致;如何进行安全扫描和持续交付。这些问题已经不再是单纯的语法问题,而是 Go 工程化需要解决的问题。

十二的博客 372

Go语言第十八章(架构设计)

本文讲解 Go Modules 与项目结构,是 Go 多包项目、依赖管理的基础教程。从`go mod init`初始化模块、`go mod tidy`自动整理依赖入手,介绍模块路径、go.mod 与 go.sum 的作用;讲解自定义包导入规则、首字母大小写控制导出权限。同时介绍社区常用目录规范:cmd 存放程序入口、internal 为模块私有代码、pkg 用于对外可引用库。演示国内 GOPROXY 镜像配置,以 color 库为例说明第三方依赖引入流程。核心要点:一个 go.mod 对应一个模块,一个目录

qq1195566313的博客 212

go消息推送之极光推送 (JPush REST API + SDK,覆盖安卓与iOS)

使用 gorush有个绕不开的问题:国内安卓设备上 FCM 基本不可达,华为、小米、OPPO、vivo 各自为政——此时可用极光推送(JPush)作解决方案。它的思路和前面几家都不一样:App 集成极光 SDK 后拿到统一的 RegistrationID,服务端发一条 REST 请求,极光云端自动把消息路由到 APNs、各家厂商通道或极光自有长连接。这里给出了:一个用纯标准库直接调用极光的;另一个用社区维护的,类型化参数,接口注释与官方文档逐条对应。两个功能相同,可放在一起对比学习。

qq_40467670的博客 161

2026-11-04-Go批量导出实战

一个后台导出接口,订单量冲到 2 万后内存飙到 90%、P99 到 12 秒。复盘发现三个批量任务的经典坑:全量加载、全量拼字符串、串行写。这篇用分页游标+errgroup并发+信号量限流+写临时文件四招改完,P99 压到 900 毫秒,文末给批量任务自查清单表。

利威尔的博客,主要分享一些go后端,agent相关知识,都是最新最前沿而且是免费的,在我的专栏里有各种方向的详细分类和内容整理,详细内容请阅读主页置顶文章,希望对你有帮助。 368

Go 工业边缘错误处理实战:用 errors 构建可追溯错误链

哨兵错误适合表达跨层传递、稳定且数量有限的业务语义。var (switch {default:不要为每种底层故障都创建哨兵错误。语义不稳定、需要携带字段、只有局部模块使用的错误,更适合自定义类型。自定义错误适合表达“同一类失败,但上下文不同”的场景,例如设备读取失败、协议解析失败、采集任务失败。Op stringErr error使用errors.AsUnwrap返回Err,不要在Error()里丢失底层错误;字段使用稳定命名,便于结构化日志和指标统计;

ZenovaEdgeOS的博客 173
上一篇: linux c编程之“hello world”一
linuxwuj
博客等级 码龄16年 25粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值