码迷,mamicode.com
首页 > 其他好文 > 详细

GO语言的各种笔记

时间:2014-08-07 13:32:50      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:使用   os   for   ar   代码   amp   type   ad   

1、:=是不能用在函数外,如果要声明全局变量请用关键字var。

2、常量是

const Name = value

3、如果变量要声明类型:

xxx int:=1;

4、布尔值的类型为bool,值是true或false,默认为false。

5、GO语言的变量类型转换必须是显示转换,也就是要有相关的代码。

6、文本和其它类型不能直接通过+相连,要先转换类型。

7、GO语言的变量可以以组为单位申请

var(
    i int
    pi float32
    prefix string
)

8、大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量;小写字母开头的就是不可导出的,是私有变量。

大写字母开头的函数也是一样,相当于class中的带public关键词的公有函数;小写字母开头的就是有private关键词的私有函数。

9、数组这样声明:

var arr [n]type

10、动态数组用slice声明

 11、if的条件是不加括号的

12、在名字的尾部加个冒号代表标签,然后可以用goto跳到:

here:
goto here

13、for的写法:

 for index:=0; index < 10 ; index++ {
        sum += index
    }

14、类似while的语法:

sum := 1
for sum < 1000 {
    sum += sum
}

15、GO语言是可以返还多个值:

func SumAndProduct(A, B int) (int, int) {
    return A+B, A*B
}

16、指针用法

//简单的一个函数,实现了参数+1的操作
func add1(a *int) int { // 请注意,
    *a = *a+1 // 修改了a的值
    return *a // 返回新值
}

func main() {
    x := 3

    fmt.Println("x = ", x)  // 应该输出 "x = 3"

    x1 := add1(&x)  // 调用 add1(&x) 传x的地址

    fmt.Println("x+1 = ", x1) // 应该输出 "x+1 = 4"
    fmt.Println("x = ", x)    // 应该输出 "x = 4"
}

17、使用关键字defer可以使程序先跳过等到执行完再返回执行

func ReadWrite() bool {
    file.Open("file")
    defer file.Close()
    if failureX {
        return false
    }
    if failureY {
        return false
    }
    return true
}

18、如果有很多调用defer,那么defer是采用后进先出模式,所以如下代码会输出4 3 2 1 0

GO语言的各种笔记,布布扣,bubuko.com

GO语言的各种笔记

标签:使用   os   for   ar   代码   amp   type   ad   

原文地址:http://my.oschina.net/tbaby/blog/298782

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!