• Go入门系列:你好,世界


    前言

    每一门新语言的学习都是从“hello, world”开始的。

    开发环境

    安装go环境

    按照官网的下载及安装文档就很简单集成go开发环境。 Mac和Windows提供了可视化的图形安装方式,还是非常人性化的。 安装成功后,可通过如下命令进行查看,并判断是否安装成功。

    go version
    • 1
    alt

    建议配置国内的镜像服务器:

    配置国内镜像代理(使用阿里云镜像)
    go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
    验证
    go env|grep GOPROXY
    • 1

    IDE

    首先推荐知名JetBrains针对Go语言推出的GoLang,这对Java开发同学或者Android同学非常友好;

    当然如果是前端同学想要学习Go语言开发,那么就首推微软开源的跨语言源码编辑器VS Code了,添加对应的Go插件即可。

    alt

    (Hello,world)你好,世界

    可以直接通过IDE,或者创建普通文件的形式就行学习第一个go程序。建议创建一个用于包含所有练习项目的文件件,方便学习管理。

    1. 创建一个demo.go文件,内容如下

    package main
    import "fmt"
    func main() {
     fmt.Println("Hello, world")
     fmt.Println("你好, 世界")
    }
    • 1

    2. 执行go编译命令

    go build demo.go
    • 1

    或者在IDE中可以直接点击图中的绿色按钮进行编译

    alt

    3. 输出结果如下

    Hello, world
    你好, 世界
    • 1

    知识点

    1. package main

    这一行代码定义了 Go 中的一个包 package。包是 Go 语言的基本组成单元,通常使用单个的小写单词命名,一个 Go 程序本质上就是一组包的集合。 main包在Go中是一个特殊的包,整个Go程序中仅允许存在一个名为 main 的包。 main包中的主要代码就是这个main()函数,这是go可执行程序的入口函数。

    func main() {
     fmt.Println("Hello, world")
     fmt.Println("你好, 世界")
    }
    • 1

    如果不是package main包,那么这个main()函数知识一个普通函数,那么再ide上也没有绿色的小按钮了。

    alt 2. Gofmt

    Go语言内置了一套Go社区约定俗称的代码风格,并随安装包提供了一个名为Gofmt的工具,这个工具可以帮助你将代码自动格式化为约定的风格。

    因此,作为Go开发人员,请在提交你的代码前使用Gofmt格式化你的Go源码。

    对于使用Mac的小伙伴可以直接使用快捷键【command+option+l】快速格式化程序代码。

    3. 标准 Go 代码风格使用 Tab 而不是空格来实现缩进的

    4. 导包及函数调用

    • import “fmt” 一行中“fmt”代表的是包的导入路径(Import),它表示的是标准库下的 fmt 目录,整个 import 声明语句的含义是导入标准库 fmt 目录下的包;
    • fmt.Println 函数调用一行中的“fmt”代表的则是包名。

    在 Go 语言中,只有首字母为大写的标识符才是导出的(Exported),才能对包外的代码可见;如果首字母是小写的,那么就说明这个标识符仅限于在声明它的包内可见。

    5.所见即所得 Go源码文件本身采用的是Unicode字符集,而且用的是UTF-8标准的字符编码方式;因此不会存在像Python那样存在中文的编码问题,需要在在文件开头加入 # -- coding: UTF-8 -- 或者 # coding=utf-8,比如下面这样

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-

    print"你好,世界" )
    • 1

    6.编码中分号是可选的

    编译

    使用go build命令编译后生成二进制可执行文件,通过ls命令可以进行查看

    go build demo.go

    MacBook-Pro-5:awesomeProject demo$ ls
    demo    demo.go go.mod
    • 1

    demo文件即为可执行文件(Windows系统下为demo.exe,其余系统下为demo)

    Go是一种编译型语言,这意味着只有你编译完Go程序之后,才可以将生成的可执行文件交付于其他人,并运行在没有安装Go的环境中。

    当然也可以不经过编译,直接运行查看结果,使用 go run 命令,这通常用在开发调试阶段。

    MacBook-Pro-5:awesomeProject demo$ go run demo.go
    Hello, world
    你好, 世界
    • 1

    go.mod依赖管理

    Go module构建模式是在Go1.11版本正式引入的,为的是彻底解决 Go 项目复杂版本依赖的问题,在 Go1.16版本中,Go module 已经成为了 Go 默认的包依赖管理机制和Go源码构建机制。

    Go Module的核心是一个名为 go.mod 的文件,在这个文件中存储了这个 module 对第三方依赖的全部信息,相当于flutter中的pubspec.yaml文件, ReactNative项目中的package.json文件。

    go.mod文件的内容示例如下,

    module hellomodule

    go 1.16

    require (
     github.com/valyala/fasthttp v1.38.0
     go.uber.org/zap v1.22.0
    )

    • 1

    题外话

    可以使用 go mod tidy添加所有第三方依赖, 与此同时也会生成一个go.sum文件。

    go.sum文件,这个文件记录了 hellomodule 的直接依赖和间接依赖包的相关版本的 hash 值,用来校验本地包的真实性。在构建的时候,如果本地依赖包的 hash 值与 go.sum 文件中记录的不一致,就会被拒绝构建。

    总结

    1. Go 包是 Go 语言的基本组成单元。一个 Go 程序就是一组包的集合,所有 Go 代码都位于包中;
    2. Go 源码可以导入其他 Go 包,并使用其中的导出语法元素,包括类型、变量、函数、方法等,而且,main 函数是整个 Go 应用的入口函数;
    3. Go 源码需要先编译,再分发和运行。如果是单 Go 源文件的情况,我们可以直接使用 go build 命令 +Go 源文件名的方式编译。不过,对于复杂的 Go 项目,我们需要在 Go Module 的帮助下完成项目的构建。

    参考资料 极客时间《Go语言第一课》

    本文由 mdnice 多平台发布

  • 相关阅读:
    linux espidf vscode
    阿里妈妈API 获取商品详情 全电商平台数据接口
    如何使用 Python 中 Pandas 进行数据分析?
    root用户自动安装mysql 5.7脚本
    SynchronousQueue源码分析_第一讲:引子
    Jetty
    黔院长 | 做好大健康产业的前提——有真正的技术和经验!
    ChatGPT的问世给哪些行业带来了冲击?
    mvc-ioc实现
    MATLAB编程:绘制折线图 以及 画图的一些小技巧
  • 原文地址:https://blog.csdn.net/wayne214/article/details/126287984