<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Go on 中二青年</title>
    <link>https://zhong-er.com/categories/go/</link>
    <description>Recent content in Go on 中二青年</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 09 Dec 2019 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://zhong-er.com/categories/go/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【Go】GoLand安装使用</title>
      <link>https://zhong-er.com/posts/gogoland%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/gogoland%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;一-goland集成开发环境下载&#34;&gt;一 GoLand集成开发环境下载&lt;/h2&gt;
&lt;p&gt;IDE 下载地址：&lt;a href=&#34;http://www.jetbrains.com/go/?fromMenu&#34;&gt;http://www.jetbrains.com/go/?fromMenu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IDE安装就是平常的傻瓜式安装，这里就不多说了。&lt;/p&gt;
&lt;h2 id=&#34;二-使用goland&#34;&gt;二 使用GoLand&lt;/h2&gt;
&lt;p&gt;1、 双击运行安装完的GoLand，选择创建项目，并关联GOROOT（会自动关联）&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;fgwgr.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912099571_3392_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;2、在项目上点击右键，按图选择，如下，给文件命一个名字，如 test&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;2aymzu.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912094311_8547_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;3、在文件中写入如下代码：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;3bgjsu.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912096118_5294.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;4、在文件上右键，选择 Run go build test.go，就可以看到控制台打印出hello world!啦&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;4wm2.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912093480_9128_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;5u076z.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912094525_9516_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;5、也可以在Terminal窗口下输入go run test.go,就可以看到打印结果&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;6qdjk.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912098158_6868_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;6、或者输入go build test.go ,会在当前路径下生成一个可执行文件(test)，继续输入 ./test ，即可执行该可执行文件&lt;/p&gt;
&lt;p&gt;END&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】Hello World</title>
      <link>https://zhong-er.com/posts/gohello-world/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/gohello-world/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;建立-go-工作区&#34;&gt;建立 Go 工作区&lt;/h2&gt;
&lt;p&gt;在编写代码之前，我们首先应该建立 Go 的工作区（Workspace）。&lt;/p&gt;
&lt;p&gt;在 Mac 或 Linux 操作系统下，Go 工作区应该设置在 HOME/go∗∗。所以我们要在∗∗HOME/go∗∗。所以我们要在∗∗HOME 目录下创建 go 目录。&lt;/p&gt;
&lt;p&gt;而在 Windows 下，工作区应该设置在 C:\Users\YourName\go。所以请将 go 目录放置在 C:\Users\YourName。&lt;/p&gt;
&lt;p&gt;其实也可以通过设置 GOPATH 环境变量，用其他目录来作为工作区。但为了简单起见，我们采用上面提到的放置方法。&lt;/p&gt;
&lt;p&gt;所有 Go 源文件都应该放置在工作区里的 src 目录下。请在刚添加的 go 目录下面创建目录 src。&lt;/p&gt;
&lt;p&gt;所有 Go 项目都应该依次在 src 里面设置自己的子目录。我们在 src 里面创建一个目录 hello 来放置整个 hello world 项目。&lt;/p&gt;
&lt;p&gt;创建上述目录之后，其目录结构如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;go
  src
    hello
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在我们刚刚创建的 hello 目录下，在 helloworld.go 文件里保存下面的程序。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import &amp;quot;fmt&amp;quot;
func main() {  
    fmt.Println(&amp;quot;Hello World&amp;quot;)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建该程序之后，其目录结构如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;go
  src
    hello
      helloworld.go
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;运行-go-程序&#34;&gt;运行 Go 程序&lt;/h2&gt;
&lt;p&gt;运行 Go 程序有多种方式，我们下面依次介绍。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】包管理详解</title>
      <link>https://zhong-er.com/posts/go%E5%8C%85%E7%AE%A1%E7%90%86%E8%AF%A6%E8%A7%A3/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E5%8C%85%E7%AE%A1%E7%90%86%E8%AF%A6%E8%A7%A3/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;go包管理&#34;&gt;Go包管理&lt;/h1&gt;
&lt;h2 id=&#34;一-包管理历史&#34;&gt;一 包管理历史&lt;/h2&gt;
&lt;p&gt;Golang 的包管理一直被大众所诟病的一个点，但是我们可以看到现在确实是在往好的方向进行发展。下面是官方的包管理工具的发展历史：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;在 1.5 版本之前，所有的依赖包都是存放在 GOPATH 下，没有版本控制。这个类似 Google 使用单一仓库来管理代码的方式。这种方式的最大的弊端就是无法实现包的多版本控制，比如项目 A 和项目 B 依赖于不同版本的 package，如果 package 没有做到完全的向前兼容，往往会导致一些问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1.5 版本推出了 vendor 机制。所谓 vendor 机制，就是每个项目的根目录下可以有一个 vendor 目录，里面存放了该项目的依赖的 package。&lt;code&gt;go build&lt;/code&gt; 的时候会先去 vendor 目录查找依赖，如果没有找到会再去 GOPATH 目录下查找。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1.9 版本推出了实验性质的包管理工具 dep，这里把 dep 归结为 Golang 官方的包管理方式可能有一些不太准确。关于 dep 的争议颇多，比如为什么官方后来没有直接使用 dep 而是弄了一个新的 modules，具体细节这里不太方便展开。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1.11 版本推出 modules 机制，简称 mod。modules 的原型其实是 vgo，关于 vgo，可以自行搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;除此之外，社区也一直在有几个活跃的包管理工具，使用广泛且具有代表性的主要有下面几个：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;godep&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;glide&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;govendor&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;二-modules-的使用&#34;&gt;二 modules 的使用&lt;/h2&gt;
&lt;h3 id=&#34;21-准备&#34;&gt;2.1 准备&lt;/h3&gt;
&lt;p&gt;Golang 版本：1.12.3。在 1.12 版本之前，使用 Go modules 之前需要环境变量 GO111MODULE:&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】变量</title>
      <link>https://zhong-er.com/posts/go%E5%8F%98%E9%87%8F/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E5%8F%98%E9%87%8F/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;变量是什么&#34;&gt;变量是什么&lt;/h3&gt;
&lt;p&gt;变量指定了某存储单元（Memory Location）的名称，该存储单元会存储特定类型的值。在 Go 中，有多种语法用于声明变量。&lt;/p&gt;
&lt;h3 id=&#34;声明单个变量&#34;&gt;声明单个变量&lt;/h3&gt;
&lt;p&gt;var name type 是声明单个变量的语法。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import &amp;quot;fmt&amp;quot;
func main() {
    var age int // 变量声明
    fmt.Println(&amp;quot;my age is&amp;quot;, age)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;语句 &lt;code&gt;var age int&lt;/code&gt; 声明了一个 int 类型的变量，名字为 age。我们还没有给该变量赋值。如果变量未被赋值，Go 会自动地将其初始化，赋值该变量类型的零值（Zero Value）。本例中 age 就被赋值为 0。如果你运行该程序，你会看到如下输出：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;my age is 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;变量可以赋值为本类型的任何值。上一程序中的 age 可以赋值为任何整型值（Integer Value）。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import &amp;quot;fmt&amp;quot;
func main() {
    var age int // 变量声明
    fmt.Println(&amp;quot;my age is&amp;quot;, age)
    age = 29 // 赋值
    fmt.Println(&amp;quot;my age is&amp;quot;, age)
    age = 54 // 赋值
    fmt.Println(&amp;quot;my new age is&amp;quot;, age)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面的程序会有如下输出：&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】常量</title>
      <link>https://zhong-er.com/posts/go%E5%B8%B8%E9%87%8F/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E5%B8%B8%E9%87%8F/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;定义&#34;&gt;定义&lt;/h3&gt;
&lt;p&gt;在 Go 语言中，术语&amp;quot;常量&amp;quot;用于表示固定的值。比如 &lt;code&gt;5&lt;/code&gt; 、&lt;code&gt;-89&lt;/code&gt;、 &lt;code&gt;I love Go&lt;/code&gt;、&lt;code&gt;67.89&lt;/code&gt; 等等。&lt;/p&gt;
&lt;p&gt;看看下面的代码:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var a int = 50  
var b string = &amp;quot;I love Go&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的代码中，变量 a 和 b 分别被赋值为常量 50 和 I love GO。关键字 &lt;code&gt;const&lt;/code&gt; 被用于表示常量，比如 &lt;code&gt;50&lt;/code&gt; 和 &lt;code&gt;I love Go&lt;/code&gt;。即使在上面的代码中我们没有明确的使用关键字 &lt;code&gt;const&lt;/code&gt;，但是在 Go 的内部，它们是常量。&lt;/p&gt;
&lt;p&gt;顾名思义，常量不能再重新赋值为其他的值。因此下面的程序将不能正常工作，它将出现一个编译错误: &lt;code&gt;cannot assign to a.&lt;/code&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
func main() {  
    const a = 55 // 允许
    a = 89       // 不允许重新赋值
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常量的值会在编译的时候确定。因为函数调用发生在运行时，所以不能将函数的返回值赋值给常量。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import (  
    &amp;quot;fmt&amp;quot;
    &amp;quot;math&amp;quot;
)
func main() {  
    fmt.Println(&amp;quot;Hello, playground&amp;quot;)
    var a = math.Sqrt(4)   // 允许
    const b = math.Sqrt(4) // 不允许
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的程序中，因为 &lt;code&gt;a&lt;/code&gt; 是变量，因此我们可以将函数 &lt;code&gt;math.Sqrt(4)&lt;/code&gt; 的返回值赋值给它（我们将在单独的地方详细讨论函数）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】函数</title>
      <link>https://zhong-er.com/posts/go%E5%87%BD%E6%95%B0/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E5%87%BD%E6%95%B0/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;函数是什么&#34;&gt;函数是什么？&lt;/h2&gt;
&lt;p&gt;函数是一块执行特定任务的代码。一个函数是在输入源基础上，通过执行一系列的算法，生成预期的输出。&lt;/p&gt;
&lt;h2 id=&#34;函数的声明&#34;&gt;函数的声明&lt;/h2&gt;
&lt;p&gt;在 Go 语言中，函数声明通用语法如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;func functionname(parametername type) returntype {  
    // 函数体（具体实现的功能）
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;函数的声明以关键词 &lt;code&gt;func&lt;/code&gt; 开始，后面紧跟自定义的函数名 &lt;code&gt;functionname (函数名)&lt;/code&gt;。函数的参数列表定义在 &lt;code&gt;(&lt;/code&gt; 和 &lt;code&gt;)&lt;/code&gt; 之间，返回值的类型则定义在之后的 &lt;code&gt;returntype (返回值类型)&lt;/code&gt;处。声明一个参数的语法采用 参数名 参数类型 的方式，任意多个参数采用类似 &lt;code&gt;(parameter1 type, parameter2 type) 即(参数1 参数1的类型,参数2 参数2的类型)&lt;/code&gt;的形式指定。之后包含在 &lt;code&gt;{&lt;/code&gt; 和 &lt;code&gt;}&lt;/code&gt; 之间的代码，就是函数体。&lt;/p&gt;
&lt;p&gt;函数中的参数列表和返回值并非是必须的，所以下面这个函数的声明也是有效的&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;func functionname() {  
    // 译注: 表示这个函数不需要输入参数，且没有返回值
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;示例函数&#34;&gt;示例函数&lt;/h2&gt;
&lt;p&gt;我们以写一个计算商品价格的函数为例，输入参数是单件商品的价格和商品的个数，两者的乘积为商品总价，作为函数的输出值。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;func calculateBill(price int, no int) int {  
    var totalPrice = price * no // 商品总价 = 商品单价 * 数量
    return totalPrice // 返回总价
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上述函数有两个整型的输入 &lt;code&gt;price&lt;/code&gt; 和 &lt;code&gt;no&lt;/code&gt;，返回值 &lt;code&gt;totalPrice&lt;/code&gt; 为 &lt;code&gt;price&lt;/code&gt; 和 &lt;code&gt;no&lt;/code&gt; 的乘积，也是整数类型。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】开发环境搭建</title>
      <link>https://zhong-er.com/posts/go%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;一-下载地址&#34;&gt;一 下载地址&lt;/h2&gt;
&lt;p&gt;安装包下载地址为：&lt;a href=&#34;https://golang.org/dl/&#34;&gt;https://golang.org/dl/&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果打不开可以使用这个地址：&lt;a href=&#34;https://golang.google.cn/dl/&#34;&gt;https://golang.google.cn/dl/&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;各个系统对应的包名：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作系统&lt;/th&gt;
					&lt;th&gt;包名&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Windows&lt;/td&gt;
					&lt;td&gt;go1.13.3.windows-amd64.msi&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;go1.13.3.linux-amd64.tar.gz&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Mac&lt;/td&gt;
					&lt;td&gt;go1.13.3.darwin-amd64.pkg&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;FreeBSD&lt;/td&gt;
					&lt;td&gt;go1.13.3.freebsd-amd64.tar.gz&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img alt=&#34;dimzn.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912096658_1985.jpg-zhonger.com&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;二-安装&#34;&gt;二 安装&lt;/h2&gt;
&lt;h3 id=&#34;linux安装&#34;&gt;Linux安装&lt;/h3&gt;
&lt;p&gt;1、下载二进制包：go1.13.3.linux-amd64.tar.gz&lt;/p&gt;
&lt;p&gt;2、将下载的二进制包解压至 /usr/local目录。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -C /usr/local -xzf go1.13.3.linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3、将 /usr/local/go/bin 目录添加至PATH环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export PATH=$PATH:/usr/local/go/bin
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;windows安装&#34;&gt;Windows安装&lt;/h3&gt;
&lt;p&gt;Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件，如go1.13.3.windows-amd64.msi)的安装包来安装。&lt;/p&gt;
&lt;p&gt;默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后你需要重启命令窗口才能生效&lt;/p&gt;
&lt;h3 id=&#34;mac安装&#34;&gt;Mac安装&lt;/h3&gt;
&lt;p&gt;Mac下直接双击go1.13.3.darwin-amd64.pkg，一路下一步安装即可&lt;/p&gt;
&lt;h2 id=&#34;三-测试安装&#34;&gt;三 测试安装&lt;/h2&gt;
&lt;p&gt;1、创建工作目录 C:&amp;gt;Go_Project。&lt;/p&gt;
&lt;p&gt;2、 创建文件test.go,写入如下代码&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import &amp;quot;fmt&amp;quot;
func main() {
   fmt.Println(&amp;quot;Hello, World!&amp;quot;)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3、打开cmd，切换目录到C:&amp;gt;Go_Project下，执行如下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;go run test.go
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看到打印结果：&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】类型</title>
      <link>https://zhong-er.com/posts/go%E7%B1%BB%E5%9E%8B/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E7%B1%BB%E5%9E%8B/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;类型&#34;&gt;类型&lt;/h1&gt;
&lt;p&gt;下面是 Go 支持的基本类型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;bool&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数字类型&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;int8, int16, int32, int64, int&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;uint8, uint16, uint32, uint64, uint&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;float32, float64&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;complex64, complex128&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;byte&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rune&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;bool&#34;&gt;bool&lt;/h3&gt;
&lt;p&gt;bool 类型表示一个布尔值，值为 true 或者 false。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package main
import &amp;quot;fmt&amp;quot;
func main() {  
    a := true
    b := false
    fmt.Println(&amp;quot;a:&amp;quot;, a, &amp;quot;b:&amp;quot;, b)
    c := a &amp;amp;&amp;amp; b
    fmt.Println(&amp;quot;c:&amp;quot;, c)
    d := a || b
    fmt.Println(&amp;quot;d:&amp;quot;, d)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的程序中，a 赋值为 true，b 赋值为 false。&lt;/p&gt;
&lt;p&gt;c 赋值为 a &amp;amp;&amp;amp; b。仅当 a 和 b 都为 true 时，操作符 &amp;amp;&amp;amp; 才返回 true。因此，在这里 c 为 false。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Go】语言介绍</title>
      <link>https://zhong-er.com/posts/go%E8%AF%AD%E8%A8%80%E4%BB%8B%E7%BB%8D/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/go%E8%AF%AD%E8%A8%80%E4%BB%8B%E7%BB%8D/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;GO语言简明教程.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/202009032723_3398_1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;go语言介绍&#34;&gt;Go语言介绍&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;golang.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201912095736_191.jpg-zhonger.com&#34;&gt;&lt;/p&gt;
&lt;p&gt;Go 即Golang，是Google公司2009年11月正式对外公开的一门编程语言。&lt;/p&gt;
&lt;p&gt;Go是静态强类型语言，是区别于解析型语言的编译型语言。&lt;/p&gt;
&lt;p&gt;解析型语言——源代码是先翻译为中间代码，然后由解析器对代码进行解释执行。&lt;/p&gt;
&lt;p&gt;编译型语言——源代码编译生成机器语言，然后由机器直接执行机器码即可执行。&lt;/p&gt;
&lt;h2 id=&#34;go语言特性&#34;&gt;Go语言特性&lt;/h2&gt;
&lt;p&gt;跨平台的编译型语言&lt;/p&gt;
&lt;p&gt;语法接近C语言&lt;/p&gt;
&lt;p&gt;管道（channel），切片（slice），并发（routine）&lt;/p&gt;
&lt;p&gt;有垃圾回收的机制&lt;/p&gt;
&lt;p&gt;支持面向对象和面向过程的编程模式&lt;/p&gt;
&lt;h2 id=&#34;go语言发展版本特性&#34;&gt;Go语言发展（版本/特性）&lt;/h2&gt;
&lt;p&gt;2009年11月7日 weekly.2009-11-06 —— 早期的版本&lt;/p&gt;
&lt;p&gt;2012年3月28日 go1 —— 稳定版版的发布&lt;/p&gt;
&lt;p&gt;2013年5月14日 go1.1 —— 语言本身的变化、库的变化等。&lt;/p&gt;
&lt;p&gt;2013年12月01日 go1.2 —— 提供更好的调度和一个新的语言特性。&lt;/p&gt;
&lt;p&gt;2014年6月18日 go1.3 —— 主要是在实现的工作上的变化，以及精准的垃圾回收。&lt;/p&gt;
&lt;p&gt;2014年12月10日 go1.4 —— 包含了2个很小的语言变更。&lt;/p&gt;
&lt;p&gt;2015年8月19日 go1.5 —— 实现的架构变化，同时保留了和旧版本的兼容性。&lt;/p&gt;
&lt;p&gt;2016年2月7日 go1.6 —— 语言本身、运行时、和库的实现的变化。&lt;/p&gt;
&lt;p&gt;2016年8月15日 go1.7 —— 标准库有显着的性能改进和变化。&lt;/p&gt;
&lt;p&gt;2017年2月26日 go1.8 —— 标准库有显着的性能改进和变化。&lt;/p&gt;
&lt;p&gt;2017年8月24日 go1.9 —— 是包含语言，标准库，以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。&lt;/p&gt;
&lt;p&gt;2018年2月16日 go1.10 —— 大部分更改都在工具链，运行时和库的实现中。&lt;/p&gt;
&lt;p&gt;2018年8月24日 go1.11 —— modules和WebAssembly支持。&lt;/p&gt;
&lt;h2 id=&#34;go语言应用&#34;&gt;Go语言应用&lt;/h2&gt;
&lt;h3 id=&#34;谁在用&#34;&gt;谁在用&lt;/h3&gt;
&lt;h4 id=&#34;google&#34;&gt;Google&lt;/h4&gt;
&lt;p&gt;这个不用多做介绍，作为开发Go语言的公司，当仁不让。Google基于Go有很多优秀的项目，比如：&lt;a href=&#34;https://github.com/kubernetes/kubernetes&#34;&gt;https://github.com/kubernetes/kubernetes&lt;/a&gt; ，大家也可以在Github上 &lt;a href=&#34;https://github.com/google/&#34;&gt;https://github.com/google/&lt;/a&gt; 查看更多Google的Go开源项目。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
