【Go语言学习系列03】Go基础语法(一):变量与数据类型

📚 原创系列: “Go语言学习系列”

🔄 转载说明: 本文最初发布于"Gopher部落"微信公众号,经原作者授权转载。

🔗 关注原创: 欢迎扫描文末二维码,关注"Gopher部落"微信公众号获取第一手Go技术文章。

📑 Go语言学习系列导航

本文是【Go语言学习系列】的第3篇,当前位于第一阶段(入门篇)

🚀 第一阶段:入门篇
  1. Go语言简介与环境搭建
  2. Go开发工具链介绍
  3. Go基础语法(一):变量与数据类型 👈 当前位置
  4. Go基础语法(二):流程控制
  5. Go基础语法(三):函数
  6. Go基础语法(四):数组与切片
  7. Go基础语法(五):映射
  8. Go基础语法(六):结构体
  9. Go基础语法(七):指针
  10. Go基础语法(八):接口
  11. 错误处理与异常
  12. 第一阶段项目实战:命令行工具

📚 查看完整Go语言学习系列导航

📖 文章导读

本文将深入介绍Go语言的变量与数据类型系统,涵盖:

  • Go变量声明的多种方式及其最佳实践
  • Go的基本数据类型(整数、浮点数、布尔值、字符串)详解
  • 复合数据类型(数组、切片、映射)基础概念
  • 类型转换和类型断言的正确使用方法
  • 常量定义与iota枚举模式的高级技巧
  • 零值机制与变量作用域的全面讲解

无论你是编程新手还是有其他语言经验的开发者,本文都将帮助你全面理解Go语言的类型系统,为后续学习打下坚实基础。

Go数据类型概览


Go基础语法(一):变量与数据类型详解

一、Go语言变量声明

在Go语言中,变量是存储数据的基本单元。相比其他语言,Go提供了多种变量声明方式,满足不同场景的需求。

1.1 变量声明的基本语法

Go语言变量声明有以下几种主要形式:

1) 完整声明形式
var 变量名 类型 = 初始值

例如:

var name string = "Gopher部落"
var age int = 25
var isActive bool = true
2) 类型推导形式

如果提供了初始值,Go编译器可以自动推导变量类型:

var 变量名 = 初始值

例如:

var name = "Gopher部落"  // 自动推导为string类型
var count = 42         // 自动推导为int类型
var pi = 3.14159       // 自动推导为float64类型
3) 短变量声明(最常用)

在函数内部,可以使用更简洁的:=语法:

变量名 := 初始值

例如:

func main() {
   
   
    name := "Gopher部落"
    age := 25
    isActive := true
    
    // 使用这些变量...
}

⚠️ 注意:短变量声明(:=)只能在函数内部使用,不能在全局作用域使用。

4) 批量声明

可以一次声明多个变量:

var (
    name     string = "Gopher部落"
    age      int    = 25
    isActive bool   = true
)

// 或者使用短变量声明
func main() {
   
   
    name, age, isActive := "Gopher部落", 25, true
}

1.2 变量命名规则与约定

Go语言的变量命名遵循以下规则:

  1. 必须以字母或下划线开头,后跟字母、数字或下划线
  2. 区分大小写countCount是不同的变量
  3. 不能使用关键字作为变量名,如funcvarif

Go社区的命名约定:

  1. 驼峰式命名法

    • 局部变量和私有字段用小驼峰:userNameitemCount
    • 导出(公开)变量和字段用大驼峰:UserNameItemCount
  2. 简洁明了:Go推崇简短的变量名,尤其是在小作用域中

    // 推荐
    for i := 0; i < 10; i++ {
         
          ... }
    
    // 不推荐
    for index := 0; index < 10; index++ {
         
          ... }
    
  3. 缩略词全大写:如HTTPURLID等(在小驼峰中是httpClient

1.3 零值(Zero Values)机制

Go语言的一个重要特性是所有变量都有默认值,称为"零值":

类型 零值
整数类型 0
浮点类型 0.0
布尔类型 false
字符串 "" (空字符串)
指针、函数、接口、切片、通道、映射 nil
var (
    i int
    f float64
    b bool
    s string
    p *int
)

func main() {
   
   
    fmt.Println(i)  // 输出: 0
    fmt.Println(f)  // 输出: 0
    fmt.Println(b)  // 输出: false
    fmt.Println(s)  // 输出: ""
    fmt.<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gopher部落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值