Go语言学习笔记

日期: 2020-02-08 13:48:31
更新: 2020-02-08 13:49:00
By Stiller

分类 Go.

标签: Go Golang

Go语言是最近几年最流行的语言之一,不同于应为机器学习和大数据以及使用简单而致使Python的流行,Go语言的流行可以说是因为其优秀的性能 以及出色的开发速度和应用方式。

Go语言又被称之为NextC,保留了指针的基础上,阻止了指针运算,这样使得垃圾回收(GC)可以不通过程序员去完成,且其代码完全支持UTF-8编码, 完全的异步处理使得多核CPU得到了用武之地。

而Docker以及Go1.5版本以后均是由Go语言实现的。

Go语言的常用环境:

  • 微服务,Web类型服务器,优秀的性能和并发操作提供
  • 基础软件或者是云计算基础设施领域,Docker以及云服务器的众多服务提供
  • 数据文件系统的打包或者是日志信息处理等系统软件

Go并非是一门面向对象的语言,其本身不支持继承和类,同时不支持自定义泛型,GC采用的是并发的标记清除算法(Concurrent Mark and Sweep,CMS)在进行GC时会停止用户的任何操作。

Go的运行性能非常突出,通过自带的编译器将Go语言文件编译成二进制的可执行文件,通用算法的性能与C相比仅仅相差10-20%之间,在单核性能不如Java但是相差无几,多核性能超过了Java。

可以在Golang的官网中下载相应版本的安装包并且进行本机的安装,除此之外不需要任何的代码环境的安装,当然可以选择一款更加好用的IDE用来代替写字板。

无论是否下载的是可安装的版本或者是下载代码进行编译,最终安装结果需要在CMD(命令行工具)中支持使用go命令,如下图所示。

Go安装成功

示例:

# 确定函数入口包名称,main包
package main
# 引入http包
import (
    "net/http"
)
# 入口主函数
func main() {
    # 路由处理和接口监听
    http.Handle("/", http.FileServer(http.Dir(".")))
    http.ListenAndServe(":8080", nil)
}

使用go run test.go可以运行该代码,启动一个http服务器,并且监听8080端口,如下图1所示

Go http服务器

目录结构 - src目录:项目和库的源文件 - 每个文件都是采用包的形式进行放置的,每一个属于该包的代码是存放于该包名称的文佳佳中的 - pkg目录:编译后生成的包/库的归档文件 - 如果使用了go install命令安装了相应的包,则存放在该文件夹下.a结尾 - bin目录:放置编译后生成的可执行文件

在go1.13以上的版本中,已经包含了包管理工具,但是需要设置其默认下载地址为中国镜像,如下方的命令进行设置: - windows: set GO111MODULE=on 或者 set GO111MODULE=auto go env -w GOPROXY=https://goproxy.cn,direct

-linux export GO111MODULE=on 或者 export GO111MODULE=auto export GOPROXY=https://goproxy.cn

使用go module初始化一个项目工程 go mod init

HelloWorld

package main

import(
    // 打印内容的引入
    "fmt"
)
func main(){
    fmt.Printf("HelloWorld")
}

链接