-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
41 lines (39 loc) · 24.3 KB
/
index.html
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
<!DOCTYPE html><html lang="zh-CN" data-default-color-scheme="auto"><head><meta charset="UTF-8"><link rel="apple-touch-icon" sizes="76x76" href="/img/fluid.png"><link rel="icon" href="/img/fluid.png"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5,shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="theme-color" content="#2f4154"><meta name="author" content="Evan Deng"><meta name="keywords" content=""><meta property="og:type" content="website"><meta property="og:title" content="Deng的博客"><meta property="og:url" content="http://coderedeng.github.io/index.html"><meta property="og:site_name" content="Deng的博客"><meta property="og:locale" content="zh_CN"><meta property="article:author" content="Evan Deng"><meta name="twitter:card" content="summary_large_image"><title>Deng的博客</title><link rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css"><link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css"><link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css"><link rel="stylesheet" href="/css/main.css"><link id="highlight-css" rel="stylesheet" href="/css/highlight.css"><link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css"><script id="fluid-configs">var Fluid=window.Fluid||{};Fluid.ctx=Object.assign({},Fluid.ctx);var dntVal,CONFIG={hostname:"coderedeng.github.io",root:"/",version:"1.9.4",typing:{enable:!0,typeSpeed:70,cursorChar:"_",loop:!1,scope:[]},anchorjs:{enable:!0,element:"h1,h2,h3,h4,h5,h6",placement:"left",visible:"hover",icon:""},progressbar:{enable:!0,height_px:3,color:"#29d",options:{showSpinner:!1,trickleSpeed:100}},code_language:{enable:!0,default:"TEXT"},copy_btn:!0,image_caption:{enable:!0},image_zoom:{enable:!0,img_url_replace:["",""]},toc:{enable:!0,placement:"right",headingSelector:"h1,h2,h3,h4,h5,h6",collapseDepth:0},lazyload:{enable:!0,loading_img:"/img/loading.gif",onlypost:!1,offset_factor:2},web_analytics:{enable:!1,follow_dnt:!0,baidu:null,google:null,gtag:null,tencent:{sid:null,cid:null},woyaola:null,cnzz:null,leancloud:{app_id:null,app_key:null,server_url:null,path:"window.location.pathname",ignore_local:!1}},search_path:"/local-search.xml"};CONFIG.web_analytics.follow_dnt&&(dntVal=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack,Fluid.ctx.dnt=dntVal&&(dntVal.startsWith("1")||dntVal.startsWith("yes")||dntVal.startsWith("on")))</script><script src="/js/utils.js"></script><script src="/js/color-schema.js"></script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="Deng的博客" type="application/atom+xml"></head><body><header><div class="header-inner" style="height:100vh"><nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar"><div class="container"><a class="navbar-brand" href="/"><strong>Deng's blog</strong> </a><button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><div class="animated-icon"><span></span><span></span><span></span></div></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav ml-auto text-center"><li class="nav-item"><a class="nav-link" href="/"><i class="iconfont icon-home-fill"></i> <span>首页</span></a></li><li class="nav-item"><a class="nav-link" href="/archives/"><i class="iconfont icon-archive-fill"></i> <span>归档</span></a></li><li class="nav-item"><a class="nav-link" href="/categories/"><i class="iconfont icon-category-fill"></i> <span>分类</span></a></li><li class="nav-item"><a class="nav-link" href="/tags/"><i class="iconfont icon-tags-fill"></i> <span>标签</span></a></li><li class="nav-item"><a class="nav-link" href="/books/"><i class="iconfont icon-books"></i> <span>书单</span></a></li><li class="nav-item"><a class="nav-link" href="/links/"><i class="iconfont icon-link-fill"></i> <span>博客</span></a></li><li class="nav-item"><a class="nav-link" href="/about/"><i class="iconfont icon-user-fill"></i> <span>关于</span></a></li><li class="nav-item" id="search-btn"><a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search"><i class="iconfont icon-search"></i></a></li><li class="nav-item" id="color-toggle-btn"><a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle"><i class="iconfont icon-dark" id="color-toggle-icon"></i></a></li></ul></div></div></nav><div id="banner" class="banner" parallax="true" style="background:url(/img/default.png) no-repeat center center;background-size:cover"><div class="full-bg-img"><div class="mask flex-center" style="background-color:rgba(0,0,0,.3)"><div class="banner-text text-center fade-in-up"><div class="h2"><span id="subtitle" data-typed-text="知识有两种,一种是你知道的,一种是你知道在哪里能找到的!"></span></div></div><div class="scroll-down-bar"><i class="iconfont icon-arrowdown"></i></div></div></div></div></div></header><main><div class="container nopadding-x-md"><div id="board" style="margin-top:0"><div class="container"><div class="row"><div class="col-12 col-md-10 m-auto"><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2024/04/10/Go%E8%AF%AD%E8%A8%80%E5%8E%86%E5%8F%B2%E7%89%88%E6%9C%AC%E6%BC%94%E8%BF%9B%E5%92%8C%E6%96%B0%E7%89%B9%E6%80%A7%5B%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%5D/" target="_self"><img src="/img/cover35.png" srcset="/img/loading.gif" lazyload alt="Go语言历史版本演进和新特性[持续更新]"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><i class="index-pin iconfont icon-top" title="Pin on top"></i> <a href="/2024/04/10/Go%E8%AF%AD%E8%A8%80%E5%8E%86%E5%8F%B2%E7%89%88%E6%9C%AC%E6%BC%94%E8%BF%9B%E5%92%8C%E6%96%B0%E7%89%B9%E6%80%A7%5B%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%5D/" target="_self">Go语言历史版本演进和新特性[持续更新]</a></h1><a class="index-excerpt" href="/2024/04/10/Go%E8%AF%AD%E8%A8%80%E5%8E%86%E5%8F%B2%E7%89%88%E6%9C%AC%E6%BC%94%E8%BF%9B%E5%92%8C%E6%96%B0%E7%89%B9%E6%80%A7%5B%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%5D/" target="_self"><div>发布总览:Release History - The Go Programming Language GO 1.22 新特性发布时间:2024-02-06 官方说明:Go 1.22 Release Notes - The Go Programming Language 循环变量改进:Go 1.22解决了for循环中循环变量在迭代之间意外共享的问题。在新的版本中,for循环中的循环变量(如for</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2024-04-10 21:34" pubdate>2024-04-10</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%9F%BA%E7%A1%80/" class="category-chain-item">Go基础</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%9F%BA%E7%A1%80/">#Go基础</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%E5%B9%B6%E5%8F%91%E7%88%AC%E5%8F%96%E5%A4%9A%E4%B8%AAurl%E6%A0%87%E9%A2%98/" target="_self"><img src="/img/cover37.png" srcset="/img/loading.gif" lazyload alt="使用 net/http 实现并发爬取多个 url 标题"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%E5%B9%B6%E5%8F%91%E7%88%AC%E5%8F%96%E5%A4%9A%E4%B8%AAurl%E6%A0%87%E9%A2%98/" target="_self">使用 net/http 实现并发爬取多个 url 标题</a></h1><a class="index-excerpt" href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%E5%B9%B6%E5%8F%91%E7%88%AC%E5%8F%96%E5%A4%9A%E4%B8%AAurl%E6%A0%87%E9%A2%98/" target="_self"><div>1. net/http 包相关方法1.1 http.NewRequestWithContextreq, err := http.NewRequestWithContext(ctx, "GET", url, nil) 这个方法用于创建一个新的 HTTP 请求。 它接受一个 context.Context 对象,可以用来设置请求的超时、取消等操作。 第一个参数是 HTTP 方法,这里是</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2024-04-30 21:26" pubdate>2024-04-30</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E7%88%AC%E8%99%AB/" class="category-chain-item">Go爬虫</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E7%88%AC%E8%99%AB/">#Go爬虫</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20colly/" target="_self"><img src="/img/cover36.png" srcset="/img/loading.gif" lazyload alt="colly"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20colly/" target="_self">colly</a></h1><a class="index-excerpt" href="/2024/04/30/Go%E7%88%AC%E8%99%AB%20-%20colly/" target="_self"><div>Colly 是 Go 语言中一个功能强大的爬虫库,它被设计用于简化 Web 页面的抓取和数据提取过程。下面是关于 Colly 的一些主要特点和用法: 简单易用:Colly 提供了一个简洁的 API,使得编写爬虫变得非常容易。你可以很容易地定义需要爬取的网站的规则,并提取感兴趣的数据。 灵活的规则定义:你可以定义多个规则来匹配不同类型的网页,并在每个规则中指定需要采取的操作,例如提取数据或者跟踪链</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2024-04-30 20:12" pubdate>2024-04-30</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E7%88%AC%E8%99%AB/" class="category-chain-item">Go爬虫</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E7%88%AC%E8%99%AB/">#Go爬虫</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2023/10/20/Go%E8%BF%9B%E9%98%B6%20-%20%E5%B9%B6%E5%8F%91/" target="_self"><img src="/img/cover34.png" srcset="/img/loading.gif" lazyload alt="并发"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2023/10/20/Go%E8%BF%9B%E9%98%B6%20-%20%E5%B9%B6%E5%8F%91/" target="_self">并发</a></h1><a class="index-excerpt" href="/2023/10/20/Go%E8%BF%9B%E9%98%B6%20-%20%E5%B9%B6%E5%8F%91/" target="_self"><div>1. 并发1.1 并发和并行的区别并发和并行是两个不同的概念: 并行意味着程序在任意时刻都是同时运行的; 并发意味着程序在单位时间内是同时运行的 1.1.1 并行并行就是在任一粒度时间内都具备同时执行的能力:简单来说并行就是多机或多台机器并行处理; SMP(SMP 是对称多处理器(Symmetric MultiProcessing)的简称。在这样的系统中包含多个处理器,同时,处理器间共享</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2023-10-20 20:50" pubdate>2023-10-20</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E8%BF%9B%E9%98%B6/" class="category-chain-item">Go进阶</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E8%BF%9B%E9%98%B6/">#Go进阶</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/23/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20regexp2/" target="_self"><img src="/img/cover2-21.png" srcset="/img/loading.gif" lazyload alt="regexp2"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/23/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20regexp2/" target="_self">regexp2</a></h1><a class="index-excerpt" href="/2022/06/23/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20regexp2/" target="_self"><div>21.regexp201.regexp2 Regexp2:https://blog.csdn.net/dianxin113/article/details/118769094 GitHub:https://github.com/dlclark/regexp2 package main import ( "fmt" "github.com/dlclark/regexp2" ) func R</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-23 22:02" pubdate>2022-06-23</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/22/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20machinery/" target="_self"><img src="/img/cover2-20.png" srcset="/img/loading.gif" lazyload alt="machinery"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/22/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20machinery/" target="_self">machinery</a></h1><a class="index-excerpt" href="/2022/06/22/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20machinery/" target="_self"><div>20.machinery01.异步框架machinery github地址(opens new window) 1.1 machinery介绍 go machinery框架类似python中常用celery框架,主要用于 异步任务和定时任务,有一下特性 任务重试机制 延迟任务支持 任务回调机制 任务结果记录 支持Workflow模式:Chain,Group,Chord 多Brokers支持:Re</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-22 22:52" pubdate>2022-06-22</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/21/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cron/" target="_self"><img src="/img/cover2-19.png" srcset="/img/loading.gif" lazyload alt="cron"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/21/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cron/" target="_self">cron</a></h1><a class="index-excerpt" href="/2022/06/21/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cron/" target="_self"><div>19.cron定时01.cron基本使用1.1 使用举例package main import ( "fmt" "github.com/robfig/cron" ) //主函数 func main() { cron2 := cron.New() //创建一个cron实例 //执行定时任务(每5秒执行一次) err:= cron2.AddFunc("*/5 * * * *</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-21 21:24" pubdate>2022-06-21</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/20/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20logrus/" target="_self"><img src="/img/cover2-18.png" srcset="/img/loading.gif" lazyload alt="logrus"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/20/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20logrus/" target="_self">logrus</a></h1><a class="index-excerpt" href="/2022/06/20/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20logrus/" target="_self"><div>18.logrus01.logrus基础 参考GitHub(opens new window) 参考博客1(opens new window) 参考博客2(opens new window) 安装 go get github.com/sirupsen/logrus 1.1 简介 Logrus是Go(golang)的结构化logger,与标准库logger完全API兼容,它有以下特点 完全兼</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-20 21:54" pubdate>2022-06-20</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/19/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cobor/" target="_self"><img src="/img/cover2-17.png" srcset="/img/loading.gif" lazyload alt="Cobor"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/19/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cobor/" target="_self">Cobor</a></h1><a class="index-excerpt" href="/2022/06/19/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20cobor/" target="_self"><div>17.cobor01.cobra使用 GitHub地址: https://github.com/spf13/cobra/blob/master/user_guide.md 参考博客:https://www.qikqiak.com/post/create-cli-app-with-cobra/ 安装 go get -u github.com/spf13/cobra 1.1 基本使用 初始项目</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-19 22:26" pubdate>2022-06-19</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><div class="row mx-auto index-card"><div class="col-12 col-md-4 m-auto index-img"><a href="/2022/06/17/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20Makefile/" target="_self"><img src="/img/cover2-16.png" srcset="/img/loading.gif" lazyload alt="Makefile"></a></div><article class="col-12 col-md-8 mx-auto index-info"><h1 class="index-header"><a href="/2022/06/17/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20Makefile/" target="_self">Makefile</a></h1><a class="index-excerpt" href="/2022/06/17/Go%E5%B8%B8%E7%94%A8%E5%BA%93%E4%BB%8B%E7%BB%8D%20-%20Makefile/" target="_self"><div>16.Makefile01.介绍1.1 make介绍 make是一个构建自动化工具,会在当前目录下寻找Makefile或makefile文件 如果存在相应的文件,它就会依据其中定义好的规则完成构建任务。 1.2 Makefile介绍 借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程。 我们可以把Makefile简单理解为它定义了一个项目文件</div></a><div class="index-btm post-metas"><div class="post-meta mr-3"><i class="iconfont icon-date"></i> <time datetime="2022-06-17 22:21" pubdate>2022-06-17</time></div><div class="post-meta mr-3 d-flex align-items-center"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a href="/categories/Go%E5%B8%B8%E7%94%A8%E5%BA%93/" class="category-chain-item">Go常用库</a></span></span></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a href="/tags/Go%E5%B8%B8%E7%94%A8%E5%BA%93/">#Go常用库</a></div></div></article></div><nav aria-label="navigation"><span class="pagination" id="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#board">2</a><a class="page-number" href="/page/3/#board">3</a><span class="space">…</span><a class="page-number" href="/page/6/#board">6</a><a class="extend next" rel="next" href="/page/2/#board"><i class="iconfont icon-arrowright"></i></a></span></nav></div></div></div></div></div><a id="scroll-top-button" aria-label="TOP" href="#" role="button"><i class="iconfont icon-arrowup" aria-hidden="true"></i></a><div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-lg" role="document"><div class="modal-content"><div class="modal-header text-center"><h4 class="modal-title w-100 font-weight-bold">搜索</h4><button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body mx-3"><div class="md-form mb-5"><input type="text" id="local-search-input" class="form-control validate"> <label data-error="x" data-success="v" for="local-search-input">关键词</label></div><div class="list-group" id="local-search-result"></div></div></div></div></div></main><footer><div class="footer-inner"><div class="footer-content"><a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a></div></div></footer><script src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js"></script><link rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css"><script>NProgress.configure({showSpinner:!1,trickleSpeed:100}),NProgress.start(),window.addEventListener("load",function(){NProgress.done()})</script><script src="https://lib.baomitu.com/jquery/3.6.0/jquery.min.js"></script><script src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js"></script><script src="/js/events.js"></script><script src="/js/plugins.js"></script><script src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js"></script><script>(function (window, document) {
var typing = Fluid.plugins.typing;
var subtitle = document.getElementById('subtitle');
if (!subtitle || !typing) {
return;
}
var text = subtitle.getAttribute('data-typed-text');
jQuery.ajax({
type: 'GET',
url: 'https://v1.hitokoto.cn/',
headers: {},
dataType: 'json',
success: function(result) {
var apiText;
if (result) {
var keys = 'hitokoto'.split(',');
if (result instanceof Array) {
result = result[0];
}
for (const k of keys) {
var value = result[k];
if (typeof value === 'string') {
apiText = value;
break;
} else if (value instanceof Object) {
result = value;
}
}
}
apiText ? typing(apiText) : typing(text);
},
error: function(xhr, status, error) {
if (error) {
console.error('Failed to request https://v1.hitokoto.cn/:', error);
}
typing(text);
}
})
})(window, document);</script><script src="/js/img-lazyload.js"></script><script src="/js/local-search.js"></script><script src="/js/boot.js"></script><noscript><div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div></noscript></body></html>