<?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>Golang on 古思乱想</title><link>https://blog.gusibi.site/tags/golang/</link><description>Recent content in Golang on 古思乱想</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 07 Oct 2019 09:48:04 +0800</lastBuildDate><atom:link href="https://blog.gusibi.site/tags/golang/index.xml" rel="self" type="application/rss+xml"/><item><title>学习单元测试，告别祈祷式编程</title><link>https://blog.gusibi.site/post/unit-test/</link><pubDate>Mon, 07 Oct 2019 09:48:04 +0800</pubDate><guid>https://blog.gusibi.site/post/unit-test/</guid><description>单元测试编写指南</description></item><item><title>如何通过MD5反查身份证号？</title><link>https://blog.gusibi.site/post/id-md5-search/</link><pubDate>Sun, 18 Aug 2019 14:22:26 +0800</pubDate><guid>https://blog.gusibi.site/post/id-md5-search/</guid><description>如何通过MD5反查身份证号？</description></item><item><title>markdown中code生成图片的实现</title><link>https://blog.gusibi.site/post/markdown-code-to-image-2/</link><pubDate>Sat, 15 Jun 2019 23:34:53 +0800</pubDate><guid>https://blog.gusibi.site/post/markdown-code-to-image-2/</guid><description>markdown中code生成图片的实现</description></item><item><title>markdown中code生成图片的思路</title><link>https://blog.gusibi.site/post/markdown-code-to-image-1/</link><pubDate>Thu, 13 Jun 2019 23:34:53 +0800</pubDate><guid>https://blog.gusibi.site/post/markdown-code-to-image-1/</guid><description>markdown中code生成图片的思路</description></item><item><title>Golang mod 入门</title><link>https://blog.gusibi.site/post/golang-mod/</link><pubDate>Sat, 16 Mar 2019 19:49:35 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-mod/</guid><description>golang mod</description></item><item><title>Golang 学习笔记-2：控制流</title><link>https://blog.gusibi.site/post/golang-learing-note-2/</link><pubDate>Tue, 17 Apr 2018 23:49:35 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-learing-note-2/</guid><description>golang 学习笔记 控制流</description></item><item><title>Golang 学习笔记-1：变量&amp;函数</title><link>https://blog.gusibi.site/post/golang-learing-note-1/</link><pubDate>Thu, 22 Feb 2018 20:45:22 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-learing-note-1/</guid><description>golang 学习笔记 变量 函数 基本数据结构</description></item><item><title>跟着代码学go 002 -- 控制流</title><link>https://blog.gusibi.site/post/golang-learning-by-code-002/</link><pubDate>Tue, 26 Apr 2016 15:49:35 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-learning-by-code-002/</guid><description>跟着代码学golang 控制流</description></item><item><title>跟着代码学go 001 -- 变量&amp;函数</title><link>https://blog.gusibi.site/post/golang-learning-by-code-001/</link><pubDate>Mon, 25 Apr 2016 14:53:47 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-learning-by-code-001/</guid><description>跟着代码学golang 变量 函数 基本数据结构</description></item><item><title>golang 介绍</title><link>https://blog.gusibi.site/post/golang-description/</link><pubDate>Thu, 14 Apr 2016 22:44:40 +0800</pubDate><guid>https://blog.gusibi.site/post/golang-description/</guid><description>&lt;h2 id="1-golang-是什么"&gt;1. Golang 是什么&lt;/h2&gt;
&lt;p&gt;Go 官方说明：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表达力、简 洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新的类型系统允许构建有 性的模块化程序。Go 编译到机器码非常快 速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类 型编译语言,但是感觉上是动态类型的,解释型语言&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;HUGOMORE42&lt;/p&gt;
&lt;h2 id="2-为什么要开发这个语言"&gt;2. 为什么要开发这个语言&lt;/h2&gt;
&lt;h3 id="go-语言的发展目标"&gt;Go 语言的发展目标&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Go 语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合&lt;/li&gt;
&lt;li&gt;Go 语言是一门类型安全和内存安全的编程语言。虽然 Go 语言中仍有指针的存在，但并不允许进行指针运算。&lt;/li&gt;
&lt;li&gt;Go 语言的另一个目标是对于网络通信、并发和并行编程的极佳支持，从而更好地利用大量的分布式和多核的计算机&lt;/li&gt;
&lt;li&gt;Go 语言中另一个非常重要的特性就是它的构建速度（编译和链接到机器代码的速度），一般情况下构建一个程序的时间只需要数百毫秒到几秒。&lt;/li&gt;
&lt;li&gt;Go 语言实现高效快速的垃圾回收（使用了一个简单的标记-清除算法）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-有什么特性用途"&gt;3. 有什么特性&amp;amp;&amp;amp;用途&lt;/h2&gt;
&lt;h3 id="语言的特性"&gt;语言的特性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;清晰并且简洁&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Go 努力保持小并且优美,你可以在短短几行代码里做许多事情;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;并行&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Go 语言从本质上（程序和结构方面）来实现并发编程。
Go 让函数很容易成为非常轻量的线程。这些线程在 Go 中被叫做 goroutines&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Channel&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;这些 goroutines 之间的通讯由 channel[18, 25] 完成&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;快速&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;编译很快,执行也很快。目标是跟 C 一样快。编译时间用秒计算;
Go 的可执行文件都比相对应的源代码文件要大很多，这恰恰说明了 Go 的 runtime 嵌入到了每一个可执行文件当中。当然，在部署到数量巨大的集群时，较大的文件体积也是比较头疼的问题。但总得来说，Go 的部署工作还是要比 Java 和 Python 轻松得多。因为 Go 不需要依赖任何其它文件，它只需要一个单独的静态文件，这样你也不会像使用其它语言一样在各种不同版本的依赖文件之间混淆。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;安全&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;当转换一个类型到另一个类型的时候需要显式的转换并遵循严格的规则。Go 有 垃圾收集（使用了一个简单的标记-清除算法）,在 Go 中无须 free(),语言会处理这一切;
值得注意的是，因为垃圾回收和自动内存分配的原因，Go 语言不适合用来开发对实时性要求很高的软件。&lt;/p&gt;</description></item></channel></rss>