<?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 DMStory - 大喵的故事</title>
    <link>https://dmstory.github.io/posts/golang-junior/</link>
    <description>Recent content in Golang 新手教程 on DMStory - 大喵的故事</description>
    <image>
      <title>DMStory - 大喵的故事</title>
      <url>https://dmstory.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://dmstory.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 03 Apr 2023 21:40:26 +0800</lastBuildDate>
    <atom:link href="https://dmstory.github.io/posts/golang-junior/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Golang基础篇-竞态</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-race-condition/</link>
      <pubDate>Mon, 03 Apr 2023 21:40:26 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-race-condition/</guid>
      <description>&lt;h2 id=&#34;goroutine执行顺序&#34;&gt;goroutine执行顺序&lt;/h2&gt;
&lt;p&gt;上一篇说到，goroutine是程序执行过程中的一个独立的单元，当程序中只有一个goroutine时，程序逻辑按照代码的顺序来执行，但是当程序中同时运行多个goroutine时，
逻辑的执行顺序是不确定的，比如下面的例子：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Golang&#34; data-lang=&#34;Golang&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;		&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;go&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Sleep&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Second&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Number %d First\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Number %d Second\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/*output:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 9 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 6 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 5 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 5 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 4 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 4 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 0 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 0 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 9 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 8 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 8 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 6 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 3 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 3 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 7 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 7 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 2 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 2 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 1 First
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Number 1 Second
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;*/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上面的代码中，我们开启了10个goroutine,但是实际运行结果则是不同的goroutine穿插执行。如果这些goroutine之间没有关联，那么穿插执行并不会导致什么问题，但是如果它们之间有关联，比如需要访问同一块内存，
则程序的执行结果可能会依赖各个goroutine的执行顺序，这种情况称之为竞态。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-goroutine</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-goroutine/</link>
      <pubDate>Sun, 07 Aug 2022 12:00:26 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-goroutine/</guid>
      <description>&lt;h2 id=&#34;goroutine&#34;&gt;goroutine&lt;/h2&gt;
&lt;p&gt;goroutine是Golang实现并发的一种手段，在一个Golang程序中，每一个goroutine相当于一个独立的执行单元，这类似于线程，但是并不是线程，而是Golang在语言层面上对线程的一种抽象。&lt;/p&gt;
&lt;p&gt;Golang程序执行的时候默认会创建一个goroutine，可以叫他main goroutine。其他的goroutine需要我们通过&lt;code&gt;go func()&lt;/code&gt;的形式创建。&lt;/p&gt;
&lt;p&gt;这有点类似于一个工厂，工厂里面至少要有一个人员吧，我们称之为老板(main goroutine)，当工厂只有老板一个人时，工厂还是可以正常运转的，所有的事情都需要老板亲历亲为呗。当我们在程序中又创建了一个goroutine时，就相当于招聘了一个员工，这样就可以把一些工作分给员工去做。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-接口</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-interface/</link>
      <pubDate>Sat, 30 Jul 2022 13:56:56 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-interface/</guid>
      <description>&lt;p&gt;很多编程语言都提供了接口，Golang接口最大的特点是它可以不必显式定义，只要一个类型实现了某个接口定义的所有方法，那它就实现了这个接口。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-结构体扩展</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-struct-expand/</link>
      <pubDate>Fri, 03 Jun 2022 11:19:05 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-struct-expand/</guid>
      <description>&lt;p&gt;结构体扩展允许将多个结构体组合成一个新的结构体，在新的结构体中，允许像访问自己内部成员一样访问内嵌结构体的字段和方法。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-方法</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-juinior-method/</link>
      <pubDate>Tue, 03 May 2022 14:39:22 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-juinior-method/</guid>
      <description>&lt;h2 id=&#34;函数和方法的区别&#34;&gt;函数和方法的区别&lt;/h2&gt;
&lt;p&gt;函数只是一段代码的执行过程，而方法往往会与某个类型的对象绑定。&lt;/p&gt;
&lt;p&gt;方法是OOP的概念，在一个方法的实现中，我们可以通过特定方式访问对象的私有变量、方法，例如C类语言的this指针，Python的self等，在方法的调用过程中，对象往往被隐式传递。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-异常处理</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-juinior-panic-and-recover/</link>
      <pubDate>Sat, 30 Apr 2022 10:57:15 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-juinior-panic-and-recover/</guid>
      <description>&lt;p&gt;Panic是指程序遇到了(或者由程序主动发起)运行时错误，此时，程序中的函数会立即停止执行，然后执行已经defer过的函数，随后，程序输出错误日志信息，停止运行。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-defer关键字</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-defer/</link>
      <pubDate>Sat, 05 Mar 2022 09:03:35 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-defer/</guid>
      <description>&lt;p&gt;defer关键字可以延迟一个函数的执行，直到这个函数返回，无论是正常的&lt;code&gt;return&lt;/code&gt;返回，还是由于意外情况。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-匿名函数</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-anonymous-function/</link>
      <pubDate>Sat, 26 Feb 2022 09:50:02 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-anonymous-function/</guid>
      <description>&lt;p&gt;当我们定义一个函数时，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Golang&#34; data-lang=&#34;Golang&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(){&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;statements&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这种方式只能用在&lt;strong&gt;包一级&lt;/strong&gt;，称为命名函数。这个过程相当于我们定义了一个常量&lt;code&gt;f&lt;/code&gt;，类型为&lt;code&gt;func()&lt;/code&gt;，并且其对应我们刚才定义的函数。
但是有些情况下这种函数定义的方式不够灵活，比如我们希望在调用函数时将某个函数作为参数传入，或者在函数返回时希望返回的是一个函数。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-函数</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-function/</link>
      <pubDate>Sat, 12 Feb 2022 09:19:48 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-function/</guid>
      <description>&lt;h2 id=&#34;函数声明&#34;&gt;函数声明&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Golang&#34; data-lang=&#34;Golang&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;funcName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;param1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;param2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;paramType1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;param3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;paramType2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;resultType1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;resultType2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;statements&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;函数由&lt;code&gt;func&lt;/code&gt;关键字，函数名称，参数列表，返回值列表，函数体组成。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-流程控制</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-juinior-process-control/</link>
      <pubDate>Tue, 18 Jan 2022 20:16:26 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-juinior-process-control/</guid>
      <description>&lt;p&gt;流程控制结构主要包括分支结构、循环结构、标签跳转。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-复合类型</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-complex-type/</link>
      <pubDate>Sun, 09 Jan 2022 10:08:50 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-complex-type/</guid>
      <description>&lt;p&gt;Golang复合类型大致分为数组、切片、map、结构体、指针等。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-内置类型</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-built-in-type/</link>
      <pubDate>Wed, 05 Jan 2022 21:23:38 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-built-in-type/</guid>
      <description>&lt;p&gt;Golang内置类型大致分为整型、浮点型、复数型、字符(串)型、接口类型、布尔型几类。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang基础篇-基本结构</title>
      <link>https://dmstory.github.io/posts/golang-junior/golang-junior-base-structure/</link>
      <pubDate>Sat, 01 Jan 2022 11:21:48 +0800</pubDate>
      <guid>https://dmstory.github.io/posts/golang-junior/golang-junior-base-structure/</guid>
      <description>&lt;p&gt;Golang版本：go version go1.17.3 windows/amd64&lt;/p&gt;
&lt;p&gt;学习环境：Visual Studio Code&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
