Golang 基本程序结构

Golang 基本程序结构

Go语言变量、常量以及与其他语言的差异

编写测试程序

  1. 源码文件以_test 结尾: xxx_test.go
  2. 测试方法以Test开头: func TestXXX(){}

实现Fibonacci数列

1
2
// Fibonacci数列:每一位等于前两位之和
1,1,2,3,5,8,13,...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package fib

import (
"testing"
)

func TestFibList(t *testing.T) {
var (
a int = 1
b int = 1
)
t.Log(a)
for i := 0; i < 10; i++ {
t.Log(b)
tmp := a
a = b
b = tmp + a
}
}

变量赋值

与其他语言差异

  • 赋值可以进行自动类型推断

  • 一个赋值语句中可以对多个变量同时进行赋值

  • 两个变量交换不需要通过中间变量a,b=b,a即可

  • 常量快速设置连续值 (通过iota常量计数器,只能在常量的表达式中使用)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const (
    Monday = iota + 1
    Tuesday
    Wednesday
    )

    //等价于

    const (
    Monday = 1
    Tuesday = 2
    Wednesday = 3
    )

基本数据类型

1
2
3
4
5
6
7
8
- bool
- string
- int int8 int 16 int 32 int64
- uint 8 16 32 64 uintptr (在不同机器不同位)
- byte
- rune
- float32 float64
- complex64 complex128
  • go 语言不允许隐式类型转换

  • 别名和原有类型也不能进行隐式类型转换

  • 不支持指针运算

  • string是值类型,默认是空字符串,而不是nil

  • 预定义值

    1