go语言main参数 go语言map( 二 )


输出为:
参数:可以传0个或多个值来供自己用
返回:通过用 return来进行返回
输出为:
上面就是一个典型的多参数传递与多返回值
对例子的说明:
按值传递:是对某个变量进行复制,不能更改原变量的值
引用传递:相当于按指针传递,可以同时改变原来的值,并且消耗的内存会更少,只有4或8个字节的消耗
在上例中,返回值 (d int, e int, f int) { 是进行了命名 , 如果不想命名可以写成 (int,int,int){ ,返回的结果都是一样的,但要注意:
当返回了多个值,我们某些变量不想要 , 或实际用不到 , 我们可以使用 _ 来补位,例如上例的返回我们可以写成 d,_,f := test(a,b,c),我们不想要中间的返回值,可以以这种形式来舍弃掉
在参数后面以 变量 ... type 这种形式的 , 我们就要以判断出这是一个可变长度的参数
输出为:
在上例中,strs ...string 中,strs 的实际值是b,c,d,e,这就是一个最简单的传递可变长度的参数的例子,更多一些演变的形式,都非常类似
在GO中 defer 关键字非常重要,相当于面相对像中的析构函数 , 也就是在某个函数执行完成后,GO会自动这个;
如果在多层循环中函数里,都定义了 defer ,那么它的执行顺序是先进后出;
当某个函数出现严重错误时 ,  defer 也会被调用
输出为
这是一个最简单的测试了,当然还有更复杂的调用,比如调试程序时,判断是哪个函数出了问题,完全可以根据 defer 打印出来的内容来进行判断 , 非常快速 , 这种留给你们去实现
一个函数在函数体内自己调用自己我们称之为递归函数,在做递归调用时,经常会将内存给占满,这是非常要注意的 , 常用的比如,快速排序就是用的递归调用
本篇重点介绍了GO函数(func)的声明与使用,下一篇将介绍GO的结构 struct
如何配置go语言开发环境1、下载go的zip文件 。并且一定要把文件解压到c:\go目录下 。
2、配置windows的高级环境变量 。包括:GOROOT、GOOS、GOBIN、GOARCH 。并且在path变量里面把c:\go\bin加入 。以便可以在命令行直接运行go命令 。
举例:我的机器:
GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;
GOBIN=c:\go\bin;F:\workspace\goSample01\bin;
其中,c:\go是go的安装路径;
F:\workspace\goSample01是我写的go语言项目的工程目录;
F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径;
3、在完成环境变量配置后,打开一个命令行窗口,直接输入go , 然后回车,看看是否出现go的帮助信息 。如果出现,那么go的基本环境就OK了 。
注意:这个基本环境不包含开发工具 , 也不能直接编译带C代码的go程序 。
4、(可选)为了支持Import远程包,最好装个gomingw 。下载地址: 。如果下的是压缩包,请把它解压到C盘 。例如,C:\gowin-env 。里面有个Console.bat是以后使用go get的环境 。举例:有个文件a.go,里面import(
"fmt"
"github.com/astaxie/beedb"
_ "github.com/ziutek/mymysql/godrv"
为了编译该a.go文件 , 需要启动Console.bat,然后在该命令行窗口,进入c:\go\src目录下 , 执行go getgithub.com/astaxie/beedb
Go get github.com/ziutek/mymysql/godrv .
Go会自动下载该远程包并编译和安装这些包 。
配置goclipse(可?。?
(如果不喜欢eclipse开发工具,请跳过这个配置 。)
1、下载并安装goclipse插件 。Goclipse是go语言for eclipse的插件,下载地址:
2、启动eclipse并创建go项目 。然后写个最简单的helloworld.go文件,并运行 。代码如下:

推荐阅读