一、Windows下GO开发环境的搭建及体验

    使用GO前需要先搭建GO的开发环境,之前是在DEBIAN下安装了GO环境,现在WINDOWS用用看,作个简单的记录。下载解压安装/解压Golang,到下载地址:https://www.golangtc.com/download 

    找到对应的版本,我这里使用的是:Download and install - The Go Programming Language

    即GO1.13版本,下载后解压并开始配置环境变量,就和配置JAVA环境一样。环境变量一个是GOROOT:即下载解压的地址比如C:\Go,另一个是GOPATH,是在上面的目录中创建的一个文件夹,例如值为C:\Go\GOPATH最后将上面两个变量名添加到Path中,现在的WIN10不像这前的win7那样是在一个输入框找到最后的位置粘贴进去,而是可以做到一行一个地址,也比较方便人性化。加入两行内容:%GOROOT%\bin和%GOPATH% 环境配置完成,在命令下执行go env就能正常执行了。

    搭建环境之后下载GO的IDE,有个liteide比较好用,官网下载地址:

https://sourceforge.net/projects/liteide/

    是个绿色版本,下载下来解压运行bin下面的liteide.exe执行文件即可。进入编辑器:工具->编辑当前环境,将系统修改为当前的win64之类的,然后IDE自动打开win64.env配置文件,然后将默认配置修改一下,主要就是取消GOROOT和PATH的注释,并修改一下PATH的值,我这里的配置如下:

# native compiler windows amd64
GOROOT=c:\GO
GOARCH=amd64
GOOS=windows
CGO_ENABLED=1
PATH=c:\GO\bin;%GOROOT%\bin;%PATH%
LITEIDE_GDB=gdb64
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C

    最后设置一下IDE的GOPATH,通过IDE工具->管理添加一下GOPATH值,选择使用自定义GO_PATH,并输入C:\Go\GOPATH\,去除钩选使用系统GO_PATH。使用快捷键Ctrl + N 打开新项目或文件对话框,GOPATH 选择上一步的那个,模板选择 Go1 Command Project,最后取个名字,比如hello,建立成功后先进行BUILD,然后执行RUN。就可以生成执行文件并成功运行GO程序。

二、GO语言中的for循环语句的三种写法

    Go语言开发中只有一种循环for, 比较简洁,不像其它的语言好多做循环功能,比如for,while,do-while之类的,实际搞这么些并不需要常使用,一个for就够了。回到Go语言中的for循环,Go语言中的for有个与其它的不一样的是for后面可以不带初始化或条件语句,即使有语句也不需要使用括号,直接空格写语句即可。

    for共有3种写法,介绍和GO语言示例如下:

第一种写法:就是直接for{},所有的条件判断逻辑都写在{}中,自己根据条件控制break逻辑。
第二种写法:for后面只跟一个条件判断语句,其它的逻辑写在{}中
第三种写法:和其它的语言就比较像,初始化,条件, 逻辑{}

#GO语言for循环示例
package main
import (
	"fmt"
)

const height = 10

func main() {
	showTriangle1()
	fmt.Println("--------------------------")
	showTriangle2()
	fmt.Println("--------------------------")
	showTriangle3()
}

//第一种写法:显示一个递增的*号
func showTriangle1() {
	var k = height
	for {
		var j = 1
		for {
			fmt.Print("*")
			j++
			if j > k {
				break
			}
		}
		fmt.Println("")
		if k <= 1 {
			break
		}
		k--
	}

}

//第二种写法:显示一个递增的*号
func showTriangle2() {
	k := height
	for k >= 1 {
		var t = ""
		j := 1
		for j <= k {
			j++
			t = t + "*"
		}
		fmt.Println(t)
		k--
	}
}

//第三种写法:显示一个递增的*号
func showTriangle3() {
	for k := height; k >= 1; k-- {
		var t = ""
		for j := 1; j <= k; j++ {
			t = t + "*"
		}
		fmt.Println(t)
	}
}

    最后GO语言中循环控制语句有break,continue, goto 语句。break,continue功能和其它的语言没有特殊之处,在Go中,break和continue语名支持跟标签LABEL,直接跳到某个for层级。goto和break这个也有点类似,也是将控制转移到被标记的语句。