编写测试程序

  1. 源码文件以_test结尾;例如:xxx_test.go
  2. 测试方法名以Test开头;例如:func TestXXXXX(t *testing.T){}

实现斐波那且数列

package fib

import (
"fmt"
"testing"
) func TestFibList(t *testing.T) {
// 第一种赋值方式
//var a int =1
//var b int =1 // 第二种赋值方式
//var (
// a int = 1
// b = 1
//) // 第三种赋值方式
a := 1
b := 1
fmt.Print(a)
for i := 0; i < 5; i++ {
fmt.Print(" ", b)
tmp := a
a = b
b = tmp + a
}
fmt.Println()
}

代码里边给出了三种赋值方式:

one

var a int =1 一般全局变量,或者外部变量

two

var (
a int = 1
b = 1
)

three go语言可以不使用关键字,使用类型推断直接给变量设置类型

a := 1

变量赋值

  • 赋值可以进行自动类型推断
  • 在一个赋值语句中可以对多个变量进行同时赋值
func TestExchang(t *testing.T) {
a := 1
b := 1
// 1 常见写法
//tmp := a
//a = b
//b = tmp
//
// 2 go 特性:多个变量进行同时赋值
a, b = b, a
t.Log(a, b)
}

两点需要注意

  1. 常见写法

    tmp := a
    a = b
    b = tmp
  2. go 特性:多个变量进行同时赋值
    a, b = b, a

常量定义

快速设置连续值

const (
Monday = iota + 1
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
) const (
Open = 1 << iota
Close
Pending
)

测试代码

package constart_test

import (
"testing"
) const (
Monday = iota + 1
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
) const (
Open = 1 << iota //0001
Close //0010
Pending //0011
) func TestConstantTry(t *testing.T) {
t.Log(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) } func TestConstantTry1(t *testing.T) {
a := 6
t.Log(uint8(a), uint(Open), uint(Close), uint(Pending))
c := a & Open
t.Logf("第一行 - c 的值为 %d\n", c)
c = a & Close
t.Logf("第一行 - c 的值为 %d\n", c)
c = a & Pending
t.Logf("第一行 - c 的值为 %d\n", c)
t.Log(a&Open == Open, a&Close == Close, a&Pending == Pending)
}

输出

--- PASS: TestConstantTry (0.00s)
constant_try_test.go:24: 1 2 3 4 5 6 7
=== RUN TestConstantTry1
--- PASS: TestConstantTry1 (0.00s)
constant_try_test.go:30: 6 1 2 4
constant_try_test.go:32: 第一行 - c 的值为 0
constant_try_test.go:34: 第一行 - c 的值为 2
constant_try_test.go:36: 第一行 - c 的值为 4
constant_try_test.go:37: false true true
PASS Process finished with exit code 0

示例代码请访问: https://github.com/wenjianzhang/golearning

学习go语言第二天-变量、常量的更多相关文章

  1. python全栈开发学习_day2_语言种类及变量

    一.编程语言的分类及python相对其他语言的优势 1)三大语言种类及细分 1.机器语言(低级语言):直接用计算能够理解的二进制进行编写,直接控制计算机硬件. 优点:执行效率高. 缺点:开发效率低,跨 ...

  2. Swift 学习笔记第一天-变量常量,及数据类型

    1.定义变量 用关键字 var 比如 var i=2 2.定义常量用let 如let c=3 可见Swift 定义时不用指定类型.由编译器推断 如果想指定类型 var i:Int32=2 练习 let ...

  3. GO学习-(4) Go语言基础之变量和常量

    Go语言基础之变量和常量 变量和常量是编程中必不可少的部分,也是很好理解的一部分. 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语 ...

  4. go 学习笔记之有意思的变量和不安分的常量

    首先希望学习 Go 语言的爱好者至少拥有其他语言的编程经验,如果是完全零基础的小白用户,本教程可能并不适合阅读或尝试阅读看看,系列笔记的目标是站在其他语言的角度学习新的语言,理解 Go 语言,进而写出 ...

  5. Go语言从入门到放弃(一) 变量/常量/函数

    HelloWorld 我们先看看一个最简单的HelloWorld代码 package main import "fmt" func main() { fmt.Println(&qu ...

  6. 学习go语言编程系列之定义变量

    package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...

  7. Go语言基础之变量和常量

    Go语言基础之变量和常量 变量和常量是编程中必不可少的部分,也是很好理解的一部分. 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语 ...

  8. C语言学习之路之基础变量

    Hello,大家好,今天又和大家见面了!前两天,我看到了几款游戏引擎渲染效果的对比的视频,https://www.bilibili.com/video/av5113296?from=search&am ...

  9. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

随机推荐

  1. PHP array_multisort实现二维数组排序

    PHP array_multisort实现二维数组排序 参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能.第一个数组是要排序的主要数组.数组中的行(值 ...

  2. css3mask淡出文字

    css3mask淡出文字<pre>.p0_11wrap { width: 0.299rem; height: 7.68rem; overflow: hidden; background: ...

  3. 瞎折腾实录:构建 Armel 版本的 .NET Core 教程和资料资源

    目录 首先我要说明,我失败了~ 我把我的进度和经验放出来,希望能够帮助别人完成编译工作~ 背景:最近接手一个华为某型号的嵌入式设备,需要在上面搭建 .NET Core 环境. 设备是 Armel 架构 ...

  4. C++对象模型结论

    C++对象模型 1.C++对象模型探讨的是对象成员存储问题. 2.结论: (1) .类内部的函数(静态成员函数,非静态成员函数)都不在对象内部 ,不占用对象大小. (2) 类内部的静态变量不占用对象大 ...

  5. php的精度计算问题(bcadd和bcsub)

    一.前言 我们在进行php开发的时候经常会遇到浮点型的问题,特别是涉及金额的部分,常常需要进行加减运算.当小数点的位数比较多的时候,往往容易犯一些很低级的错误.这里记录一下php的精度计算和封装的小d ...

  6. ASP.NET Core 3 使用原生 依赖注入 集成 AspectCore ,实现 AOP 功能

    在NETCORE中可以使用AOP的方式有很多很多,包括国内优秀的开源框架asp.netcore同样可以实现AOP编程模式.   IOC方面,个人喜欢net core 3自带的DI,因为他注册服务简洁优 ...

  7. thinkphp6.0 开启调试模式以及Driver [Think] not supported

    thinkphp6.0 开启调试模式 首先确认自己是通过 composer 进行的下载,然后修改系统目录下的 .example.env 为 .env 文件 修改 config->app.php ...

  8. 0MQ文档导读

    1. 先结合RabbitMQ Tutorials,弄清0MQ socket的各种类型. 1.1. 0MQ PAIR 对应 RabbitMQ Tutorials的 "Hello world&q ...

  9. 使用不同的C++支持库的模块混合开发时,引发异常展开不正常,抛异常竟引出一个SIGSEGV

    如果你使用gcc对一部分模块进行了GNUMake的编译,这些编译出动态库使用在Gradle编译框架下的项目.那么就有可能出现题目中的情况,使用不同的C++支持库的模块混合开发时,引发异常展开不正常. ...

  10. react-router重定向

    ① ②通过this.props重定向