知识点
- 源码文件以_test结尾:xxx_test.go
- 测试方法名以Test开头:func TestXXX(t *testing.T){...}
利用单元测试来写代码段,保存之后会自动运行程序返回结果,可以快速实践得到反馈。
编写测试程序
接下来练习一下,怎么使用Go语言的变量和常量,在练习中体会与其他语言的差异。来自云尔Websites CSDN博客。
变量
与其他主要编程语言的差异:
-
赋值可以进行自动类型推断,无需显式地声明变量的类型,编译器可以根据赋给变量的值来推断其类型。
例如:var a = 10 // 编译器会推断出 a 的类型为 int
-
在一个赋值语句中可以对多个变量进行同时赋值,通常被称为"多重赋值"。
例如:a, b = 10, 20 // a 的值为 10,b 的值为 20
这些特性使得Go语言的代码更加简洁、紧凑,减少了冗余的类型声明,提高了代码的可读性。
实现Fibonacci数列:
go
package fib
import (
"testing"
)
//实现数列1,1,2,3,5,8,13...
func TestFibList(t *testing.T) {
// var a int = 1 //可以简写成 a := 1
a := 1
b := 1
t.Log(a) //单元测试里使用t.Log(a)打印
for i := 0; i < 5; i++ {
t.Log(" ", b)
tmp := a
a = b
b = tmp + a
}
}
func TestExchange(t *testing.T) {
a := 1
b := 2
// tmp := a
// a = b
// b = tmp
a, b = b, a //多重赋值,来自云尔Websites CSDN博客。
t.Log(a, b)
}
常量
与其他主要编程语言的差异:
- 快速设置连续值,Go语言中的切片(slice)提供了方便的方式来快速设置连续值。这是Go语言与其他语言的一个显著区别,因为其他语言可能需要使用循环或其他复杂的方式来实现相同的功能。来自云尔Websites CSDN博客。
- 常量类型:在Go语言中,常量的类型是在声明时确定的,并且无法在运行时更改。
- 常量命名规则:Go语言要求常量名称以大写字母开头,后续字母可以小写。
- 常量可见性:在Go语言中,常量的可见性是通过包级别的作用域来控制的。
实现快速设置连续值
go
package constant_test
import "testing"
const (
Monday = 1 + iota
Tuesday
Wednesday
)
const (
Readable = 1 << iota
Writable
Executable
)
func TestConstantTry(t *testing.T) {
t.Log(Monday, Tuesday)
//来自云尔Websites CSDN博客。
}
func TestConstantTry1(t *testing.T) {
a := 1 //0001
t.Log(a&Readable == Readable, a&Writable == Writable, a&Executable == Executable)
}
学习Go语言主要是多练,多找些代码段写写,不懂可以私聊咨询。