-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
307 lines (273 loc) · 36.6 KB
/
index.html
File metadata and controls
307 lines (273 loc) · 36.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebPage" lang="zh-CN">
<head>
<meta name="generator" content="Hugo 0.125.2">
<meta name="theme" content='FixIt v0.3.2'>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="robots" content="noodp" />
<title>Fred的知识库</title><meta name="author" content="Fred">
<meta name="author-link" content="https://github.com/ipfred">
<meta name="description" content="Fred's Note:探索、分享、记录自己在工作生活学习到一些东西。" /><meta name="keywords" content='Fred, Python知识库, 大数据知识库, Hugo Blog' />
<meta itemprop="name" content="Fred的知识库">
<meta itemprop="description" content="Fred's Note:探索、分享、记录自己在工作生活学习到一些东西。">
<meta itemprop="dateModified" content="2025-05-15T18:45:19+08:00">
<meta itemprop="image" content="https://ipfred.github.io/images/apple-devices-preview.webp"><meta property="og:url" content="https://ipfred.github.io/">
<meta property="og:site_name" content="Fred的知识库">
<meta property="og:title" content="Fred的知识库">
<meta property="og:description" content="Fred's Note:探索、分享、记录自己在工作生活学习到一些东西。">
<meta property="og:locale" content="zh-CN">
<meta property="og:type" content="website">
<meta property="og:image" content="https://ipfred.github.io/images/apple-devices-preview.webp">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://ipfred.github.io/images/apple-devices-preview.webp"><meta name="twitter:title" content="Fred的知识库">
<meta name="twitter:description" content="Fred's Note:探索、分享、记录自己在工作生活学习到一些东西。">
<meta name="application-name" content="FredKnow">
<meta name="apple-mobile-web-app-title" content="FredKnow"><meta name="theme-color" data-light="#f8f8f8" data-dark="#252627" content="#f8f8f8"><meta name="msapplication-TileColor" content="#da532c"><link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><link rel="manifest" href="/site.webmanifest"><link rel="canonical" href="https://ipfred.github.io/" /><link rel="alternate" href="/index.xml" type="application/rss+xml" title="Fred的知识库">
<link rel="feed" href="/index.xml" type="application/rss+xml" title="Fred的知识库"><link rel="stylesheet" href="/css/style.min.css"><link rel="preload" href="https://unpkg.com/@fortawesome/fontawesome-free@6.4.2/css/all.min.css" as="style" onload="this.removeAttribute('onload');this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://unpkg.com/@fortawesome/fontawesome-free@6.4.2/css/all.min.css"></noscript><link rel="preload" href="https://unpkg.com/animate.css@4.1.1/animate.min.css" as="style" onload="this.removeAttribute('onload');this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://unpkg.com/animate.css@4.1.1/animate.min.css"></noscript><script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "https:\/\/ipfred.github.io\/","inLanguage": "zh-CN","author": {
"@type": "Person",
"name": "Fred"
},"description": "Fred's Note:探索、分享、记录自己在工作生活学习到一些东西。","image": "https:\/\/ipfred.github.io\/apple-touch-icon.png","thumbnailUrl": "https:\/\/ipfred.github.io\/apple-touch-icon.png","license": "本站内容采用 CC BY-NC-SA 4.0 国际许可协议。","name": "Fred的知识库"
}
</script></head>
<body data-header-desktop="sticky" data-header-mobile="auto"><script>(window.localStorage?.getItem('theme') ? localStorage.getItem('theme') === 'dark' : ('auto' === 'auto' ? window.matchMedia('(prefers-color-scheme: dark)').matches : 'auto' === 'dark')) && document.body.setAttribute('data-theme', 'dark');</script><div class="wrapper" data-page-style="normal"><header class="desktop animate__faster" id="header-desktop">
<div class="header-wrapper" data-github-corner="right">
<div class="header-title">
<a href="/" title="Fred的知识库"><img loading="lazy" src="https://files.catbox.moe/mtzx1g.png" alt="Fred的知识库" data-title="Fred的知识库" class="logo" style="background: url(/images/loading.min.svg) no-repeat center;" onload="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}this.dataset.lazyloaded='';" onerror="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}"/><span class="header-title-text">Fred的知识库</span></a><span id="typeit-header-subtitle-desktop" class="typeit header-subtitle"></span></div>
<nav>
<ul class="menu"><li class="menu-item">
<a
class="menu-link"
href="/archives/"
><i class="fa-solid fa-archive fa-fw fa-sm" aria-hidden="true"></i> 归档</a></li><li class="menu-item">
<a
class="menu-link"
href="/categories/"
><i class="fa-solid fa-folder-tree fa-fw fa-sm" aria-hidden="true"></i> 分类</a></li><li class="menu-item">
<a
class="menu-link"
href="/tags/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> 标签</a></li><li class="menu-item">
<a
class="menu-link"
href="/collections/"
><i class="fa-solid fa-layer-group fa-fw fa-sm" aria-hidden="true"></i> 合集</a></li><li class="menu-item has-children">
<a
class="menu-link"
href="/lang/"
><i class="fa-solid fa-users-viewfinder fa-fw fa-sm" aria-hidden="true"></i> 编程语言</a><i class="dropdown-icon fa-solid fa-chevron-down" aria-hidden="true"></i>
<ul class="sub-menu">
<li
class="menu-item"
>
<a
class="menu-link"
href="/lang/java/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> Java</a>
</li><li
class="menu-item"
>
<a
class="menu-link"
href="/lang/python/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> Python</a>
</li></ul></li><li class="menu-item">
<a
class="menu-link"
href="/web/"
><i class="fa-regular fa-id-card fa-fw fa-sm" aria-hidden="true"></i> 导航</a></li><li class="menu-item delimiter"></li><li class="menu-item search" id="search-desktop">
<input type="text" placeholder="搜索文章标题或内容……" id="search-input-desktop">
<a href="javascript:void(0);" class="search-button search-toggle" id="search-toggle-desktop" title="搜索">
<i class="fa-solid fa-search fa-fw" aria-hidden="true"></i>
</a>
<a href="javascript:void(0);" class="search-button search-clear" id="search-clear-desktop" title="清空">
<i class="fa-solid fa-times-circle fa-fw" aria-hidden="true"></i>
</a>
<span class="search-button search-loading" id="search-loading-desktop">
<i class="fa-solid fa-spinner fa-fw fa-spin" aria-hidden="true"></i>
</span>
</li><li class="menu-item theme-switch" title="切换主题">
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
</li></ul>
</nav>
</div>
</header><header class="mobile animate__faster" id="header-mobile">
<div class="header-container">
<div class="header-wrapper">
<div class="header-title">
<a href="/" title="Fred的知识库"><img loading="lazy" src="https://files.catbox.moe/mtzx1g.png" alt="https://files.catbox.moe/mtzx1g.png" data-title="https://files.catbox.moe/mtzx1g.png" class="logo" style="background: url(/images/loading.min.svg) no-repeat center;" onload="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}this.dataset.lazyloaded='';" onerror="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}"/><span class="header-title-text">Fred的知识库</span></a><span id="typeit-header-subtitle-mobile" class="typeit header-subtitle"></span></div>
<div class="menu-toggle" id="menu-toggle-mobile">
<span></span><span></span><span></span>
</div>
</div>
<nav>
<ul class="menu" id="menu-mobile"><li class="search-wrapper">
<div class="search mobile" id="search-mobile">
<input type="text" placeholder="搜索文章标题或内容……" id="search-input-mobile">
<a href="javascript:void(0);" class="search-button search-toggle" id="search-toggle-mobile" title="搜索">
<i class="fa-solid fa-search fa-fw" aria-hidden="true"></i>
</a>
<a href="javascript:void(0);" class="search-button search-clear" id="search-clear-mobile" title="清空">
<i class="fa-solid fa-times-circle fa-fw" aria-hidden="true"></i>
</a>
<span class="search-button search-loading" id="search-loading-mobile">
<i class="fa-solid fa-spinner fa-fw fa-spin" aria-hidden="true"></i>
</span>
</div>
<a href="javascript:void(0);" class="search-cancel" id="search-cancel-mobile">
取消
</a>
</li><li
class="menu-item"
><a
class="menu-link"
href="/archives/"
><i class="fa-solid fa-archive fa-fw fa-sm" aria-hidden="true"></i> 归档</a></li><li
class="menu-item"
><a
class="menu-link"
href="/categories/"
><i class="fa-solid fa-folder-tree fa-fw fa-sm" aria-hidden="true"></i> 分类</a></li><li
class="menu-item"
><a
class="menu-link"
href="/tags/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> 标签</a></li><li
class="menu-item"
><a
class="menu-link"
href="/collections/"
><i class="fa-solid fa-layer-group fa-fw fa-sm" aria-hidden="true"></i> 合集</a></li><li
class="menu-item"
><span class="nested-item">
<a
class="menu-link"
href="/lang/"
><i class="fa-solid fa-users-viewfinder fa-fw fa-sm" aria-hidden="true"></i> 编程语言</a>
<i class="dropdown-icon fa-solid fa-chevron-right" aria-hidden="true"></i>
</span>
<ul class="sub-menu">
<li
class="menu-item"
>
<a
class="menu-link"
href="/lang/java/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> Java</a>
</li><li
class="menu-item"
>
<a
class="menu-link"
href="/lang/python/"
><i class="fa-solid fa-tags fa-fw fa-sm" aria-hidden="true"></i> Python</a>
</li></ul></li><li
class="menu-item"
><a
class="menu-link"
href="/web/"
><i class="fa-regular fa-id-card fa-fw fa-sm" aria-hidden="true"></i> 导航</a></li><li class="menu-item menu-system">
<span class="menu-system-item theme-switch" title="切换主题"><i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i></span></li>
</ul>
</nav>
</div>
</header><div class="search-dropdown desktop">
<div id="search-dropdown-desktop"></div>
</div>
<div class="search-dropdown mobile">
<div id="search-dropdown-mobile"></div>
</div><main class="container"><div class="page home posts"><div class="home-profile"><div class="home-avatar"><a href="/archives/" title="归档"><img loading="lazy" src="android-chrome-192x192.png" alt="Fred" data-title="Fred" style="background: url(/images/loading.min.svg) no-repeat center;" onload="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}this.dataset.lazyloaded='';" onerror="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}"/></a></div><h1 class="home-title"></h1><p class="home-subtitle"><span class="d-none">学习是反复的事情</span>
<span id="typeit-profile-subtitle" class="typeit"></span></p><div class="links"><a href="https://github.com/ipfred" title="GitHub"target="_blank" rel="external nofollow noopener noreferrer me"><i class="fa-brands fa-github-alt fa-fw" aria-hidden="true"></i>
</a><a href="mailto:330446875@qq.com" title="Email" rel=" me"><i class="fa-regular fa-envelope fa-fw" aria-hidden="true"></i>
</a><a href="/index.xml" title="RSS"target="_blank" rel="external nofollow noopener noreferrer me"><i class="fa-solid fa-rss fa-fw" aria-hidden="true"></i>
</a></div><img loading="lazy" src="https://ghchart.rshah.org/ipfred" alt="Fred's Github chart" data-title="Fred's Github chart" class="profile-ghchart" style="background: url(/images/loading.min.svg) no-repeat center;" onload="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}this.dataset.lazyloaded='';" onerror="this.title=this.dataset.title;for(const i of ['style', 'data-title','onerror','onload']){this.removeAttribute(i);}"/></div>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180343/">100.习题练习</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:43'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">O、内存相关 下列程序为什么会卡死(测试不会被卡死) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import ( "fmt" "runtime" ) func main() { var i byte go func() { for i = 0; i <= 255; i++ {} }() fmt.Println("Dropping mic") // Yield execution to force executing other goroutines runtime.Gosched() runtime.GC() fmt.Println("Done") } 解析: Golang 中,byte 其实被 alias 到 uint8 上了。所以上⾯的 for 循环会始终成⽴,因为 i++ 到 i=255 的时候会溢出,i <= 255 ⼀定成⽴。 也即是, for 循环永远⽆法退出,所以上</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180343/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180323/">22.go与http代理</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:23'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">网络代理 1. 网络代理&网络转发 网络代理 用户通过代理请求信息 请求通过网络代理完成转发到达目标服务器 目标服务器相应后再通过网络代理回传给用户 用户不直接连接服务器,网络代理去连接。获取数据后返回给用户 网络转发 客户端访问公网服务器,数据包在网络上传输时会经过至少一个路由器,对于多个/多层路由,会进行网</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180323/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180316/">21.go编译参数netgo</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:16'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">什么是netgo Go语言的网络库是基于操作系统提供的系统调用(syscall)实现的。在大多数现代操作系统上,这些系统调用都是由C语言实现的,经过高度优化,性能非常好。但在某些特殊的架构或操作系统上,系统网络调用可能无法正常工作,或者效率较低。 为了解决这个可移植性问题,Go语言还提供了一个纯Go实现</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180316/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180311/">20.go调用lib和so动态库</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:11'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">go 调用dll 1. sysCall.LoadDll(推荐使用) 系统调用是程序向操作系统内核请求服务的过程,通常包含硬件相关的服务(例如访问硬盘),创建新进程等。系统调用提供了一个进程和操作系统之间的接口 fmt中的syscall 1 2 3 4 5 func Println(a ...interface{}) (n int, err error) { return Fprintln(os.Stdout, a...) } Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout") 调用dll 示例 1 2 3 4 dll, err := syscall.LoadDLL("scan.dll") //根据</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180311/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180308/">19.cgo教程</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:08'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">官方文档: https://pkg.go.dev/cmd/cgo 参考:https://zhuanlan.zhihu.com/p/349197066、https://juejin.cn/post/7047405294107754533、https://pkg.go.dev/cmd/cgo 初识 cgo Cgo是Go语言中的一个工具,它允许在Go代码中直接调用C语</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180308/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180306/">18. 标准库container三剑客:head、list、ring</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:06'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">Heap - 堆 1. Heap - 堆 堆分为两种:最大堆和最小堆,两者的差别在于节点的排序方式 堆是一棵完全树(complete tree):即除了最底层,其他层的节点都被元素填满,且最底层尽可能地从左到右填入 在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节点的值都要小。这就是所谓的“堆属性”</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180306/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180303/">17. go执行外部命令</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:03:03'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">1 执行外部命令 1.1 1. 方式一:run code 1 2 3 4 5 6 7 func main() { cmd := exec.Command("ls", "-l", "/var/log/") err := cmd.Run() if err != nil { log.Fatalf("cmd.Run() failed with %s\n", err) } } Run() 方法会启动命令并等待命令执行完毕。它会阻塞当前 goroutine 直到命令执行完毕,并返回一个 error 对象,该对象表示命令执行的错误信息。如果命令执行成功,Run() 方法会返回 nil 直接调用 Cmd 对象的 Run 函数,返回的只有成功和失败,获取</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180303/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180259/">16. Go runtime详解</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:02:59'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">runtime 包 提供了运行时与系统的交互,比如控制协程函数,触发垃圾立即回收等等底层操作; 1 runtime.GOARCH 获取 GOARCH 信息 1 fmt.Println(runtime.GOARCH) // arm64 2 runtime.GOOS 获取 GOOS 信息 1 fmt.Println(runtime.GOOS) // darwin 3 runtime.GOROOT() 获取goroot环境变量 func GOROOT() string 1 2 3 4 5 6 7 8 9 10 11 12 package main import ( "fmt" "runtime" ) func main() { fmt.Println(runtime.GOROOT()) // /Users/liusaisai/.g/go fmt.Println(runtime.GOARCH) // arm64 fmt.Println(runtime.GOOS) // darwin } 4 runtime.Version() 获取go版本 1 2 3 4 5 6 7 8 9 10 11 package main import ( "fmt" "runtime" ) func main() { fmt.Println(runtime.Version()) //go1.18 } 5 runtime.NumCPU() 获取机器cp</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180259/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180255/">15. Go 切片的截取</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:02:55'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">1 截取容量问题 切片截取子切片时,会造成临时内存泄露, 主要原因有两个 切片截取时,新旧切片会共用一个底层数组 切片的底层结构体指向数组的指针只是一个头指针 demo 1 2 3 4 5 6 7 8 9 package main import "fmt" func main() { a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} c := a[1:2] fmt.Println(len(c), cap(c)) // 1,9 c的数组头指针执行索引1,所以容量为9 } 解决办法 使用copy,不过要注意copy</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180255/">阅读全文</a></div>
</article>
<article class="single summary" itemscope itemtype="http://schema.org/Article"><h2 class="single-title" itemprop="name headline"><a href="/lang/go/go_advanced/20250515180251/">14.位运算</a>
</h2><div class="post-meta"><span class="post-author"><a href="https://github.com/ipfred" title="作者"target="_blank" rel="external nofollow noopener noreferrer author" class="author"><i class="fa-solid fa-user-circle" aria-hidden="true"></i>
Fred</a></span> <span class="post-publish" title='2025-05-15 18:02:51'>发布于 <time datetime="2025-05-15">2025-05-15</time></span><span class="post-included-in"> 收录于 <a href="/collections/go%E9%AB%98%E7%BA%A7/" class="post-collection" title="合集 - go高级"><i class="fa-solid fa-layer-group fa-fw" aria-hidden="true"></i> go高级</a></span></div><div class="content">1 itoa 位运算 code-1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package main import "fmt" const ( i=1<<iota j=3<<iota k l ) func main() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l) } /* i= 1 j= 6 k= 12 l= 24 */ const 声明第一个常量必须指定一个表达式,后续的常量如果没有表达式,则继承上面的表达式。 iota 表示从 0 开始自动加 1,所以 i=1«0, j=3«1(« 表示左移的意思),即:i=1, j=6</div><div class="post-footer">
<a href="/lang/go/go_advanced/20250515180251/">阅读全文</a></div>
</article>
<ul class="pagination"><li class="page-item active">
<span class="page-link">
<a href="/">1</a>
</span>
</li><li class="page-item">
<span class="page-link">
<a href="/page/2/">2</a>
</span>
</li><li class="page-item">
<span class="page-link">
<a href="/page/3/">3</a>
</span>
</li><li class="page-item">
<span class="page-link" aria-hidden="true">…</span>
</li><li class="page-item">
<span class="page-link">
<a href="/page/9/">9</a>
</span>
</li></ul></div></main><footer class="footer">
<div class="footer-container"><div class="footer-line powered order-2">由 <a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer" title="Hugo 0.125.2"><img class="hugo-icon" src="/images/hugo.min.svg" alt="Hugo logo" /> Hugo</a> 强力驱动 | 主题 - <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external" title="FixIt v0.3.2"><img class="fixit-icon" src="/images/fixit.min.svg" alt="FixIt logo" /> FixIt</a>
</div><div class="footer-line copyright order-1" itemscope itemtype="http://schema.org/CreativeWork"><i class="fa-regular fa-copyright fa-fw" aria-hidden="true"></i>
<span itemprop="copyrightYear">2024 - 2025</span><span class="author" itemprop="copyrightHolder">
<a href="https://github.com/ipfred"target="_blank" rel="external nofollow noopener noreferrer">Fred</a></span></div><div class="footer-line statistics order-first"></div><div class="footer-line visitor">
<span id="busuanzi_container_site_uv" title='总访客数'><i class="fa-regular fa-user fa-fw" aria-hidden="true"></i> <span id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span></span><span id="busuanzi_container_site_pv" class="footer-divider" title='总访问量'><i class="fa-regular fa-eye fa-fw" aria-hidden="true"></i> <span id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span></span>
</div></div>
</footer></div><div class="widgets"><div class="fixed-buttons animate__faster d-none"><div class="fixed-button back-to-top" role="button" aria-label="回到顶部"><i class="fa-solid fa-arrow-up fa-fw" aria-hidden="true"></i><span class="variant-numeric">0%</span>
</div><div class="fixed-button view-comments d-none" role="button" aria-label="查看评论"><i class="fa-solid fa-comment fa-fw" aria-hidden="true"></i></div></div><a href="https://github.com/ipfred" title="View source on GitHub"target="_blank" rel="external nofollow" class="github-corner right d-none-mobile"><svg viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><div id="mask"></div><div class="reading-progress-bar" style="left: 0;top: 0;"></div><noscript>
<div class="noscript-warning">FixIt 主题在启用 JavaScript 的情况下效果最佳。</div>
</noscript>
</div><link rel="stylesheet" href="https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css"><link rel="preload" href="https://unpkg.com/katex@0.16.9/dist/katex.min.css" as="style" onload="this.removeAttribute('onload');this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://unpkg.com/katex@0.16.9/dist/katex.min.css"></noscript><link rel="stylesheet" href="https://unpkg.com/pace-js@1.2.4/themes/green/pace-theme-minimal.css"><script src="https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js" defer></script><script src="https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js" defer></script><script src="https://unpkg.com/instant.page@5.2.0/instantpage.js" async defer type="module"></script><script src="https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js" defer></script><script src="https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js" defer></script><script src="https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js" defer></script><script src="https://unpkg.com/sharer.js@0.5.1/sharer.min.js" async defer></script><script src="https://unpkg.com/typeit@8.7.1/dist/index.umd.js" defer></script><script src="https://unpkg.com/katex@0.16.9/dist/katex.min.js" defer></script><script src="https://unpkg.com/katex@0.16.9/dist/contrib/auto-render.min.js" defer></script><script src="https://unpkg.com/katex@0.16.9/dist/contrib/copy-tex.min.js" defer></script><script src="https://unpkg.com/katex@0.16.9/dist/contrib/mhchem.min.js" defer></script><script src="https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js" defer></script><script src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" async defer></script><script src="https://unpkg.com/pace-js@1.2.4/pace.min.js" async defer></script><script>window.config={"code":{"copyTitle":"复制到剪贴板","editLockTitle":"锁定可编辑代码块","editUnLockTitle":"解锁可编辑代码块","editable":true,"maxShownLines":30},"data":{"typeit-header-subtitle-desktop":"一个只记录精华知识的平台","typeit-header-subtitle-mobile":"一个只记录精华知识的平台","typeit-profile-subtitle":"学习是反复的事情"},"enablePWA":true,"lightgallery":true,"math":{"delimiters":[{"display":true,"left":"$$","right":"$$"},{"display":true,"left":"\\[","right":"\\]"},{"display":true,"left":"\\begin{equation}","right":"\\end{equation}"},{"display":true,"left":"\\begin{equation*}","right":"\\end{equation*}"},{"display":true,"left":"\\begin{align}","right":"\\end{align}"},{"display":true,"left":"\\begin{align*}","right":"\\end{align*}"},{"display":true,"left":"\\begin{alignat}","right":"\\end{alignat}"},{"display":true,"left":"\\begin{alignat*}","right":"\\end{alignat*}"},{"display":true,"left":"\\begin{gather}","right":"\\end{gather}"},{"display":true,"left":"\\begin{CD}","right":"\\end{CD}"},{"display":false,"left":"$","right":"$"},{"display":false,"left":"\\(","right":"\\)"}],"strict":false},"pangu":{"enable":true,"selector":"article"},"search":{"algoliaAppID":"TZCN6HKD92","algoliaIndex":"index","algoliaSearchKey":"663832297fb162d0169b237d56275fe2","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"typeit":{"cursorChar":"|","cursorSpeed":1000,"data":{"typeit-header-subtitle-desktop":["typeit-header-subtitle-desktop"],"typeit-header-subtitle-mobile":["typeit-header-subtitle-mobile"],"typeit-profile-subtitle":["typeit-profile-subtitle"]},"duration":-1,"loop":false,"speed":100}};</script><script src="/js/theme.min.js" defer></script></body>
</html>