学习go语言第二天-变量、常量
编写测试程序
- 源码文件以_test结尾;例如:xxx_test.go
- 测试方法名以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)
}
两点需要注意
- 常见写法
tmp := a
a = b
b = tmp
- 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语言第二天-变量、常量的更多相关文章
- python全栈开发学习_day2_语言种类及变量
一.编程语言的分类及python相对其他语言的优势 1)三大语言种类及细分 1.机器语言(低级语言):直接用计算能够理解的二进制进行编写,直接控制计算机硬件. 优点:执行效率高. 缺点:开发效率低,跨 ...
- Swift 学习笔记第一天-变量常量,及数据类型
1.定义变量 用关键字 var 比如 var i=2 2.定义常量用let 如let c=3 可见Swift 定义时不用指定类型.由编译器推断 如果想指定类型 var i:Int32=2 练习 let ...
- GO学习-(4) Go语言基础之变量和常量
Go语言基础之变量和常量 变量和常量是编程中必不可少的部分,也是很好理解的一部分. 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语 ...
- go 学习笔记之有意思的变量和不安分的常量
首先希望学习 Go 语言的爱好者至少拥有其他语言的编程经验,如果是完全零基础的小白用户,本教程可能并不适合阅读或尝试阅读看看,系列笔记的目标是站在其他语言的角度学习新的语言,理解 Go 语言,进而写出 ...
- Go语言从入门到放弃(一) 变量/常量/函数
HelloWorld 我们先看看一个最简单的HelloWorld代码 package main import "fmt" func main() { fmt.Println(&qu ...
- 学习go语言编程系列之定义变量
package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...
- Go语言基础之变量和常量
Go语言基础之变量和常量 变量和常量是编程中必不可少的部分,也是很好理解的一部分. 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语 ...
- C语言学习之路之基础变量
Hello,大家好,今天又和大家见面了!前两天,我看到了几款游戏引擎渲染效果的对比的视频,https://www.bilibili.com/video/av5113296?from=search&am ...
- Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数
Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...
随机推荐
- PHP常用的header头部定义
<?php header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 heade ...
- vue学习笔记(五)条件渲染和列表渲染
前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...
- JavaScript with Image:创建缩略图
当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...
- MyBatis批量更新动态sql
<update id="updateDataKetState"> update ${tablespace}.IDEA_DATAKEY_STATE <trim pr ...
- 利用Xshell配置ssh免密码登录虚拟机,进行虚拟机与物理机的传输
先说一下 Xshell如何无密连接虚拟机: ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux的方法.使用 ...
- Python 面向对象-下篇
面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实 ...
- nyoj 975-关于521 (EOF)
975-关于521 内存限制:64MB 时间限制:1000ms 特判: No 通过数:5 提交数:46 难度:2 题目描述: Acm队的流年对数学的研究不是很透彻,但是固执的他还是想一头扎进去. 浏览 ...
- 从surfaceflinger历史变更谈截屏
众所周知,有一个程序screencap可以截屏,这个程序十分简单,只是使用了surfaceflinger服务的截屏功能. 所以要了解截屏,看surfaceflinger服务的代码是不二首选.但是sur ...
- SpringBoot学习(一)—— idea 快速搭建 Spring boot 框架
简介 优点 Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot 项目只需要通过 java -jar xx.jar 来运行. Spring Boot 可以选择内嵌Tom ...
- PHP-会话控制Cookie和Session
会话控制:就是为了我们在访问页面和页面之间的跳转是,能够识别到你的登录状态,已经你的登录时长等 在php的会话控制当中,涉及到两个概念Cookie和Session Cookie 会话控制 原理:在登录 ...