💜 想真正擅长编程? 从一门课程开始,100% 免费

《笔记》第七篇 Go结构体与变量命名说明

第07讲 Go结构体与变量命名说明

视频时长: 约11分钟 核心内容: Go语言在大公司的应用、Go程序三段式结构、命名规则、变量声明方式


一、Go语言在大公司的应用

老师在课前介绍了使用Go语言的主要公司,帮助大家理解Go的定位:

1.1 国内公司

公司 使用场景
B站(哔哩哔哩) 弹幕系统10万QPS级接口,Go的GC压力小,适合高性能场景
字节跳动 高并发业务
去哪儿 后端服务
百度 部分服务

1.2 国外公司

公司 说明
Google Go语言的创建者
Uber(优步) 高并发打车服务
Netflix(奈飞) 视频流媒体服务

1.3 B站案例详解

老师特别提到了B站的Go使用情况:

  • B站最早用Go做二次开发,使用的是Gin框架
  • B站后来自研了框架(BGO)
  • 弹幕接口是10万QPS级别的
  • Go的GC(垃圾回收)压力小,特别适合高性能、高并发的应用
  • B站后来还研发了内部通用标准框架

老师总结: Go语言主要用于大流量、高并发的应用场景。


二、Go程序的三段式结构

老师将Go程序的结构总结为三个部分:

TEXT
┌─────────────────────────────┐
│  第一部分:包声明(package)   │  ← 声明该文件属于哪个包
├─────────────────────────────┤
│  第二部分:导入依赖(import)  │  ← 导入需要的包
├─────────────────────────────┤
│  第三部分:代码实现           │  ← 变量、常量、函数、类型等
│    - 普通函数                 │
│    - main函数                │
│    - type类型定义(结构体等)  │
│    - var变量声明              │
│    - const常量声明            │
│    - func函数定义             │
└─────────────────────────────┘

示例

Go
package main              // 第一部分:包声明

import "fmt"              // 第二部分:导入依赖

// 第三部分:代码实现
var name string           // 变量声明
const PI = 3.14           // 常量声明

type User struct {        // 类型定义
    Name string
    Age  int
}

func main() {             // main函数
    fmt.Println("Hello")
}

func sayHello() {         // 普通函数
    fmt.Println("Hi")
}

老师强调: 声明语句的顺序无关紧要,可以先写函数再写变量。不像Java那样上来就要先写一堆类、接口、抽象类。


三、Go命名规则

3.1 基本规则

规则 说明
必须以字母或下划线开头 不能用数字开头
区分大小写 Name 和 name 是不同的标识符
可用字符 字母、数字、下划线

3.2 命名规范对比

语言 命名风格 示例
C/C++ 优先下划线分割 user_name、get_user_info
Go 驼峰命名(CamelCase) userName、getUserInfo
Java 驼峰命名 userName、getUserInfo

老师说明: Go的命名方式与Java类似,习惯使用驼峰命名,而不是C/C++中的下划线分割。当名字由多个单词组成时,使用大小写分割而不是下划线。

3.3 Go关键字

老师在视频中提到的Go关键字包括:

TEXT
var      // 变量声明
const    // 常量声明
type     // 类型定义(如结构体)
func     // 函数定义(function的缩写)
  • func 就是 function 的缩写
  • type 用于修饰类型定义,比如定义结构体时需要用 type 关键字

四、Go与Java的简洁性对比

老师在视频中做了一个生动的比喻来对比Go和Java:

对比项 Java Go
上手难度 上来就要写类、接口、抽象类 直接写包声明、函数即可
代码量 多 少
学习曲线 陡峭 平缓
老师比喻 "像吃饭要加碗,流程复杂" "刚好就能吃饭,而且吃得也挺香"

老师原话总结: Go比Java简单多了,这也是它火的原因之一。


五、变量声明方式

5.1 标准声明(var关键字)

Go
var 变量名 类型 = 值

// 示例
var name string = "张三"
var age int = 20

5.2 简短变量声明(:=)

Go
变量名 := 值

// 示例
name := "张三"
age := 20

简短变量的特点:

  • 变量类型由表达式自动推导
  • 简洁、灵活
  • 广泛用于大部分局部变量的声明和初始化

5.3 两种方式的适用场景

方式 适用场景
:=(简短声明) 大部分局部变量的声明和初始化
var(标准声明) 需要显式指定类型,或变量稍后会被重新赋值、初始值不重要的情况

六、本讲小结

要点 内容
Go定位 高性能、高并发的后端开发语言
大厂使用 B站、字节跳动、百度、Google、Uber、Netflix
程序结构 包声明 → 导入依赖 → 代码实现
命名规则 字母/下划线开头,区分大小写,驼峰命名
声明关键字 var(变量)、const(常量)、type(类型)、func(函数)
变量声明 标准方式 var name type = value,简短方式 name := value

下节预告: 老师在视频结尾提到,下一讲将讲解Go的指针。