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

知识点

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

利用单元测试来写代码段,保存之后会自动运行程序返回结果,可以快速实践得到反馈。

编写测试程序

接下来练习一下,怎么使用Go语言的变量和常量,在练习中体会与其他语言的差异。来自云尔Websites CSDN博客。

变量

与其他主要编程语言的差异:

  1. 赋值可以进行自动类型推断,无需显式地声明变量的类型,编译器可以根据赋给变量的值来推断其类型。

    复制代码
    例如:var a = 10  // 编译器会推断出 a 的类型为 int
  2. 在一个赋值语句中可以对多个变量进行同时赋值,通常被称为"多重赋值"。

    复制代码
    例如: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)
}

常量

与其他主要编程语言的差异:

  1. 快速设置连续值,Go语言中的切片(slice)提供了方便的方式来快速设置连续值。这是Go语言与其他语言的一个显著区别,因为其他语言可能需要使用循环或其他复杂的方式来实现相同的功能。来自云尔Websites CSDN博客。
  2. 常量类型:在Go语言中,常量的类型是在声明时确定的,并且无法在运行时更改。
  3. 常量命名规则:Go语言要求常量名称以大写字母开头,后续字母可以小写。
  4. 常量可见性:在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语言主要是多练,多找些代码段写写,不懂可以私聊咨询。

欢迎关注云尔Websites CSDN博客

相关推荐
资深web全栈开发19 小时前
如何正确使用缓存:常见陷阱与最佳实践
redis·缓存·golang
枫子有风19 小时前
Go语言流程控制
android·java·golang
唐僧洗头爱飘柔952721 小时前
【GORM(3)】Go的跨时代ORM框架!—— 数据库连接、配置参数;本文从0开始教会如何配置GORM的数据库
开发语言·数据库·后端·golang·gorm·orm框架·dsn
Jonathan Star1 天前
在 Go 语言中,模板字符串
开发语言·后端·golang
想搞艺术的程序员1 天前
Go Channel 深度指南:规范、避坑与开源实践
golang
巴塞罗那的风1 天前
Eino框架快速搭建出行agent(二)引入12306 mcp
人工智能·golang·mcp
周杰伦_Jay1 天前
【Go微服务框架深度对比】Kratos、Go-Zero、Go-Micro、GoFrame、Sponge五大框架
开发语言·微服务·golang
啟明起鸣1 天前
【Go 与云原生】先从 Go 对与云原生的依赖关系讲起,再讲讲 一个简单的 Go 项目热热身
开发语言·云原生·golang
QX_hao1 天前
【Go】--log模块的使用
开发语言·后端·golang
资深web全栈开发1 天前
Gin 框架最佳实践:构建可维护的 Go Web 应用
golang·gin