安装sublime参考:http://blog.csdn.net/cyxcw1/article/details/10329481
本系列参考:http://www.runoob.com/go/go-ide.html 有安装开发工具的说明
注意:以上的注册码在sublime3.0版本中不适用
第一个程序
//第一个Go程序,注意没有分号结尾、
//本人实用的是sublime作为编辑器的
//package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
package main//这一行代码定义了包名
//告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
import (
<span style="white-space:pre"> </span>"fmt"
)
/*
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,
如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用
(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);
标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的
(像面向对象语言中的 private )。
*/
//主函数,每个程序必须有
func main() {
<span style="white-space:pre"> </span>/* 注释:这是我的第一个简单的程序 */
<span style="white-space:pre"> </span>fmt.Println("Hello,World!")//可以将字符串输出到控制台,并在最后自动增加换行字符 \n
}
因为这是第一个程序,所以说一下怎么编译运行
按Ctrl+b到命令行书写:
go run test.go
即可执行。
package main
import (
"fmt"
)
func main() {
var age int//定义变量
var identifier type//类似 uint8,256
//变量声明
//第一种
var wo string//指定变量类型,声明后若不赋值,使用默认值。
wo="shawn"
//第二种
var woshi="shawn"//编译器自动判别
//第三种省略var,:=前面不能是声明过的,这是一个特殊标记
woshishui:="shawn"
//多变量声明,和前面的差不多,只要多一个逗号,如下
var ni,wo,ta
ni,wo ta=v1,v2,v3
这种因式分解关键字的写法一般用于声明全局变量\
var(
name string
age uint8
)
//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"
//值类型与引用类型
//go语言常量
// 显式定义
const name string="shawn"
// 隐式定义
const name2 ="abc"
// 常量还能枚举,其中如果是函数值定为常量,只能是内置函数
const (
Unknown=0
Female=1
Male=2
)
// iota,特殊常量,可以认为是一个可以被编译器修改的常量。
// 在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
// iota 可以被用作枚举值:
// const (
// a=iota
// b=iota
// c=iota
// )
//
const (
i=1<<iota //
j=3<<iota //3左移一位
k//以下两行默认为k=3<<2,l=3<<3。
l
)
}
func fun() {
var a string = "abc"//声明局部变量必须要使用
a="shawn"//单纯赋值也不行
fmt.Println("hello, world",a)//这样会好点
/*但是全局变量是允许声明但不使用。
"ctrl+shift+/"可以注释*/
}
// Ctrl+/可以有"//"这样的注释,重复可以取消
// 如果你想要交换两个变量的值,则可以简单地使用 a, b = b, a。
// 空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。
// _ 实际上是一个只写变量,你不能得到它的值。这样做是因为
// Go 语言中你必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。
// 并行赋值也被用于当一个函数返回多个返回值时,比如这里的 val 和错误 err 是
// 通过调用 Func1 函数同时得到:val, err = Func1(var1)。