GO语言系列

Posted 麦克叔叔每晚10点说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO语言系列相关的知识,希望对你有一定的参考价值。

GO语言提供了很多工具,例如gofmt,它可以将代码格式化,我们来看看具体怎么实现的。


Gofmt会读取程序并且进行格式化,例如gofmt filename命令,它会打印格式化后的代码。我们来看一个示例程序(程序名demo.go):


package main

          import "fmt"

// this is demo to format code

            // with gofmt command

 var a int=2;

             var b int=5;

                            var c string= `hello world`;

       func print(){

                   fmt.Println("Value for a,b and c is : ");

                        fmt.Println(a);

                                 fmt.Println((b));

                                         fmt.Println(c);

                         }

运行gofmt demo.go之后,输出的代码如下:

package main

 

import "fmt"

 

// this is demo to format code

// with gofmt command

var a int = 2

var b int = 5

var c string = `hello world`

 

func print() {

        fmt.Println("Value for a,b and c is : ")

        fmt.Println(a)

        fmt.Println((b))

        fmt.Println(c)

}

 

对于高级语言的垃圾回收器,如何知道一个变量是否应该被回收?基本思路是每一个包级别的变量,以及每一个当前执行函数的局部变量,可以作为追溯变量的路径的源头,通过指针和其他方式的引用可以找到变量。如果变量的路径不存在,那么标量变得不可访问,因此它不会影响任何其他的计算过程。


因为变量的生命周期是通过它的是否可达来确定的,所以局部变量可以在包含它的循环的一次迭代之外继续存在。


GO语言的垃圾回收器设计的目标就是非阻塞式回收器,GO1.5实现了10毫秒内的回收(注意,根据实验证明,这种说法只有在GC有足够CPU时间的情况下才能成立)。从设计原理上来看,Go的回收器是一种并发的、三基色的、标记并清除回收器,它的设计想法是由Dijkstra在1978年提出的,目标是跟现代硬件的属性和现代软件的低延迟需求非常匹配。


发个小广告!!!走过路过,不要错过!新书来啦!!!

GO语言系列(三)
GO语言系列(三)
GO语言系列(三)

这里有你想买的书!

http://product.dangdang.com/23949549.html#ddclick_reco_reco_relate

麦克叔叔每晚十点说


以上是关于GO语言系列的主要内容,如果未能解决你的问题,请参考以下文章

Go语言系列1.4GO语言简介:第一个Go语言程序

Go语言自学系列 | go语言遍历map

Go语言自学系列 | go语言数据类型

Go语言自学系列 | go语言布尔类型

Go语言自学系列 | go语言中的流程控制

Go语言系列1.3GO语言简介:Go语言开发的知名项目