代码旅行

Day 1 of Golang

计划着今年把 Golang 好好的再撸一遍,我以前学习开发语言的方法是手册,基础知识点看一遍,然后直接看别人的代码,从简单的到难的。但这次我想换个方法,跟着网上的视频教程学习一次。

教学视频

在 YouTube 上发现「韩顺平 Go 语言零基础教程」似乎不错,观看地址点这里

学习计划及时间安排

这个系列的视频一共有 389 个,每个视频时长不等,粗略按每个视频 30 分钟计算,一共 11670 分钟,194.5 个小时。

我的学习计划是平均每天学习 2 个小时,即需要 97.25 天,满打满算取个整,需要 98 天,如果是在一年内的话,基本平均每三天要学习 2 个小时。

笔记

我会把每次的学习做一份笔记,整理成博文发出来,方便分享以及自己以后再回头学习。

第一天学习笔记

学习内容

本次学习了该系列教程的第 001 - 014

知识点整理

Golang 是由 Google 开发的一门静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,更多的介绍看 Golang 在维基百科上的介绍

Go 既有静态编译语言的安全和性能,又有动态语言开发维护的高效。

Go 的包用于组织程序结构,Go 的一个文件都要归属于一个包,不能单独存在。

Go 中,内存自动回收垃圾,不需要开发人员管理。

Go 并发性是其一个比较重要的特点,它从语言层面就支持并发;goroutine,轻量级线程实现大并发处理,高效利用多核;基于 CPS(Commiunicating Sequential Processes) 并发模型的实现。

Go 吸收了管道通信机制,形成 Go 特有的管道通过管道,可以实现不同的 goroute 之间的饿相互通信。

Go 函数可以返回多个值

func sumAndSub(n1 int, n2 int)(int, int) {
    sum := n1 + n2
    sub := n1 - n2
    return sum, sub
}

Go 中还有一些创新性功能,比如欺骗 (slice),掩饰执行 (defer)。

开发工具和环境安装

开发工具多种多样,挑自己顺手的即可。

访问 golang.org,选择自己系统的平台,下载对应的包安装即可。

我本人使用的是 macOS,日常开发机器用的是 Debian,则

  • macOS 下安装

    通过 Homebrew 安装

    具体的安装方式可以看之前些的文章,/macos-manual/

    直接用 pkg 文件安装

    官网直接下载 pkg 文件,双击安装即可。

  • Debian 下安装

    查看系统的版本 uname -a,我使用的是 x86_64 即 64 位的 Debian 9 的系统,选择 64 位 Linux 下的 Go 压缩包下载。

    https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
    

    最好检查下哈希值

    sha256sum go1.13.5.linux-amd64.tar.gz
    

    查看得到的哈希值和下载该压缩包的地方,Google 所提供的哈希值是否一致。

    tar -zvxf go1.13.5.linux-amd64.tar.gz
    

    解压压缩文件,然后将解压后的文件夹 go 移动到它所建议的目录地址 /usr/local,即

    sudo mv go /usr/local
    

    编辑 ~/.profile 文件进行环境设置

    vi ~/.profile
    

    在文末增加内容

    export GOPATH=$HOME/work
    export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
    

    如果将 go 文件夹移到了其他目录位置,而非 /usr/local 下,比如主目录中,则这里的内容为

    export GOROOT=$HOME/go
    export GOPATH=$HOME/work
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    

    刷新生效

    source ~/.profile
    

    输入 go version 出现版本号即表示安装配置完成,查看环境变量的命令 go env

这里基本是第一天学习的内容,都是一些基础概念和常规的安装配置,很容易上手。

--- EOF ---

请注意:这里的内容都是原创,你可以免费阅读,但拒绝所有其他任何形式的转载,谢谢配合。如果你发现文章中有错误,请在下面评论。考虑到网络环境,评论插件很多时候打不开,那可以考虑发邮件给我,邮箱地址在我的博客中很容易找到,非常感谢。

The Copyright of all posts & photos posted in tourcoder.com is belong to tourcoder.com. You can read them for free, but you may not reuse anything therein without my permission.

更多内容