当前位置: 首页 > news >正文

Go初级二

Go初级入门(二):变量、常量与数据类型

大家好,欢迎来到《Go初级入门》系列的第二篇!在上一篇文章中,我们介绍了如何安装Go环境并运行第一个“Hello, World”程序。今天,我们将深入Go语言的基础语法,重点学习 变量、常量 以及 常用的数据类型

掌握这些基础知识,是你迈向Go语言开发的第一步。让我们开始吧!


一、变量(Variables)

变量是程序中用于存储数据的“容器”。在Go中,变量必须先声明后使用。

1. 变量声明语法

Go提供了多种声明变量的方式:

方式一:使用 var 关键字
var name string
var age int

这表示声明了一个名为 name 的字符串变量和一个名为 age 的整型变量。

你也可以在同一行声明多个变量:

var x, y int
var a, b, c string
方式二:声明并初始化
var name string = "Alice"
var age int = 25

Go具有类型推导能力,因此你可以省略类型:

var name = "Bob"
var age = 30  // Go会自动推断为int类型
方式三:短变量声明(最常用)

在函数内部,可以使用 := 快速声明并初始化变量:

name := "Charlie"
age := 28

这是Go中最常见的变量声明方式,简洁高效。

⚠️ 注意::= 只能在函数内部使用,且变量必须是新声明的(不能重复声明)。


二、常量(Constants)

常量是程序运行期间不可更改的值。适合用于定义配置、数学常数等。

常量声明

使用 const 关键字:

const Pi = 3.14159
const CompanyName = "TechGo"

你也可以批量声明:

const (StatusOK = 200StatusNotFound = 404StatusServerError = 500
)

💡 小技巧:常量在编译时确定,不会占用运行时内存。


三、Go的基本数据类型

Go是静态类型语言,每个变量都有明确的类型。以下是Go中常见的基础数据类型:

1. 布尔类型(boolean)

var isActive bool = true
var isDone = false

取值只有 truefalse

2. 整数类型

类型描述
int有符号整数(32位或64位)
int8-128 到 127
int16-32768 到 32767
int32约 ±21亿
int64更大范围的整数
uint无符号整数
uint80 到 255(常用于字节)

一般情况下,使用 int 就足够了。

3. 浮点数类型

var price float64 = 19.99
var rate = 3.14  // 默认是float64
  • float32:单精度浮点数
  • float64:双精度浮点数(推荐使用)

4. 字符串类型(string)

字符串用双引号包裹:

var message string = "Hello, Go!"
name := "Lily"

Go中的字符串是不可变的,支持UTF-8编码。

5. 字符类型(rune)

Go中没有 char 类型,而是使用 rune 表示一个Unicode字符:

var ch rune = 'A'
var emoji = '😊'  // 支持emoji

底层是 int32 类型。

6. 字节类型(byte)

byteuint8 的别名,常用于处理原始字节数据:

var b byte = 'B'  // ASCII值66

四、查看变量类型

Go提供了 fmt.Printf%T 动词来打印变量类型:

package mainimport "fmt"func main() {name := "GoLang"age := 15price := 9.99isActive := truefmt.Printf("name 的类型是: %T\n", name)fmt.Printf("age 的类型是: %T\n", age)fmt.Printf("price 的类型是: %T\n", price)fmt.Printf("isActive 的类型是: %T\n", isActive)
}

输出:

name 的类型是: string
age 的类型是: int
price 的类型是: float64
isActive 的类型是: bool

五、最佳实践建议

  1. 优先使用 := 在函数内部快速声明变量。
  2. 明确类型 在导出变量或需要精确控制时显式声明类型。
  3. 常量命名 使用驼峰或全大写,如 MaxUsersAPI_TIMEOUT
  4. 避免使用 var 初始化多个不同类型的变量,影响可读性。

小结

在本篇文章中,我们学习了:

  • 如何声明和使用变量与常量
  • Go的常用基础数据类型
  • 不同变量声明方式的适用场景
  • 如何查看变量类型

这些是Go语言编程的基石。掌握它们,你就能开始编写更复杂的程序了。


下期预告

在下一篇文章中,我们将介绍 Go中的控制结构ifforswitch 等语句,带你写出更有逻辑的代码!


http://www.dtcms.com/a/343977.html

相关文章:

  • 集群与负载均衡:HAProxy 与 Nginx 实践
  • 第41周——人脸图像生成
  • Java 性能优化实战(三):并发编程的 4 个优化维度
  • 第3课:Flutter基础组件
  • 上海人工智能实验室开源基于Intern-S1同等技术的轻量化开源多模态推理模型
  • WPF MVVM入门系列教程(TabControl绑定到列表并单独指定每一页内容)
  • 【nl2sql综述】2025最新综述解读
  • RAG学习(五)——查询构建、Text2SQL、查询重构与分发
  • Docker 部署 Microsoft SQL Server 指南
  • 第10课:性能优化
  • 如何将照片从iPhone传输到Mac?
  • 如何将文件从 iPad 转移到 iPhone 16/15
  • Node.js 开发 JavaScript SDK 包的完整指南(AI)
  • Cloudflare + nginx 限制ip访问的几种方式(白嫖cloudflare的ip数据库)
  • 数据分类分级的概念、标准解读及实现路径
  • 新零售“实—虚—合”逻辑下定制开发开源AI智能名片S2B2C商城小程序的机遇与演进
  • TCP/UDP详解(一)
  • 高并发的 Spring Boot Web 项目注意点
  • HTTP代理与SOCKS代理的区别、应用场景与选择指南
  • Figma 开源替代品 Penpot 安装与使用
  • 要区分一张图片中的网状图(如网格结构或规则纹理)和噪点(随机分布的干扰像素),比如电路的方法 计算机视觉
  • Unreal Engine ClassName Rule
  • HTTP接口鉴权方式
  • Java面试实战系列【并发篇】- CompletableFuture异步编程实战
  • Node.js中Express框架入门教程
  • vue/react使用h5player对接海康ws视频流实时播放,监控回放
  • 快速入门Vue3——初体验
  • CS创世SD NAND在北京君正平台和瑞芯微RK平台的应用
  • 高压、高功率时代,飞机电气系统如何保障安全?
  • 安全运维过程文档体系规范