Golang 入门

栏目: IT技术 · 发布时间: 4年前

内容简介:推荐学习网址:https://learnku.com/docs/推荐在线工具:https://play.golang.org推荐编译工具:gorelease(可以一次性编译多个环境的执行程序,包含windows/linux/macos)

推荐学习网址:https://learnku.com/docs/

推荐在线工具:https://play.golang.org

推荐编译工具:gorelease(可以一次性编译多个环境的执行程序,包含windows/linux/macos)

编译

Go 是一门编译型,具有静态类型和类 C 语言语法的语言,并且有垃圾回收(GC)机制

所谓编译,是将源代码翻译为更加低级的语言的过程 —— 翻译成汇编语言,或者翻译成其他中间语言。编译语言有一个很大的缺陷,在于它的编译过程太慢。编译型语言注重于运行速度和无依赖执行程序,能够直接将依赖编译到程序中。

对于 Go 而言,作为一门编译语言,他既解决了C无法自动垃圾回收,而且对编译速度进行了极大的优化。

垃圾回收

在变量创建的时候,就拥有了一个简单的生命周期。例如,对于函数中的变量,会在函数执行之后进行销毁。垃圾回收机制,是会对变量进行跟踪,并在它们没有使用的时候进行释放。

垃圾回收会增加一些额外的资源使用,但是减少了一些BUG的存在。

运行

创建一个简单的程序,文件名是main.go:

package main
func main(){
    println("hello world! Golang!")
}

通过cmd进入程序所在目录,执行:

go run main.go

Go的编译过程,如下:

go build main.go

go run命令已经包含了编译的过程,它通过使用一个了临时目录来构建程序,执行完成后清理临时目录,可以通过 --work 来查看临时文件的位置。

Go的程序执行顺序如下:

1. 按顺序导入所有没main包引入的其他包,然后在每个包中执行下面的流程
2. 如果该包导入了其他包,则从第一部开始递归执行,但是每个包只会被导入一次
3. 然后以相反的顺序在每个包中初始化常亮和变量,如果该包含有init函数的话,则调用该函数
4. 在完成这一切之后,main函数也执行同样的过程,最后调用main函数开始执行程序

导入包

Go本身有很多内建函数,同时还有很多第三方库。例如 python 可以通过import引入其他的库。Go也可以使用import引入包,如下:

package  main
import (
    fmt
)
func main(){
    fmt.println("hello world!")
}

包和变量一样遵循不适用的包不能使用,在变量使用的过程中,如果出现了变量声明了未使用会导致编译器报错,同样的,包引入如果未使用,编译器也会报错,这是由于在编译的过程中,增添了无用的变量或者包会降低编译速度。

标准库文档: https://golang.org/pkg

命名规范

1. Go的目标:干净、可读的代码、简洁性

2. 通过gofmt来强制实现统一的代码风格。

3. Go 语言中对象的命名也应该是简洁且有意义的。

4. 名称不需要指出自己所属的包,因为在调用的时候会使用包名作为限定符。

5. 有必须要的话可以使用大小写混合的方式,如 MixedCaps 或 mixedCaps,而不是使用下划线来分割多个名称。

6. 返回某个对象的函数或方法的名称一般都是使用名词,没有 Get... 之类的字符,如果是用于修改某个对象,则使用 SetName。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computer Age Statistical Inference

Computer Age Statistical Inference

Bradley Efron、Trevor Hastie / Cambridge University Press / 2016-7-21 / USD 74.99

The twenty-first century has seen a breathtaking expansion of statistical methodology, both in scope and in influence. 'Big data', 'data science', and 'machine learning' have become familiar terms in ......一起来看看 《Computer Age Statistical Inference》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具