惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
Google DeepMind News
Google DeepMind News
月光博客
月光博客
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog

mafeifan 的编程技术分享

mafengwo-mp3-downloader | mafeifan 的编程技术分享 示例页面 | mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 查看 default namespace 下的 default service account名称 mafeifan 的编程技术分享 检查日志 | mafeifan 的编程技术分享 bridge fdb show dev flannel.1 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享
mafeifan 的编程技术分享
2026-01-16 · via mafeifan 的编程技术分享

=:= 的区别 ​

特性=:=
用途给已声明变量赋值声明并赋值新变量
类型需要预先声明类型自动类型推断
使用范围包级别和函数内仅函数内
重复声明可以重复赋值不能重复声明同名变量

实际开发建议 ​

  • 优先使用 :=:在函数内部,:= 更简洁
  • 包级别变量用 var:全局变量必须用 var 声明
  • 需要零值初始化时用 var:如 var count int (自动为0)
  • 明确指定类型时用 var:如 var pi float32 = 3.14

为什么结构体作为函数参数,前面要加 * ​

  1. 减少内存开销 如果不加 *,函数调用时会复制整个结构体,占用额外内存。 使用 * 可以传递结构体的地址,避免复制,提高性能,尤其是结构体较大时。
  2. 修改原始结构体 如果函数需要修改结构体的字段值,必须使用指针才能生效。 不使用指针(即传值方式),函数内部对结构体的修改不会影响原始结构体。
  3. 一致性 在 Go 中,方法可以有指针接收者(func (f *Family))或值接收者(func (f Family))。 如果你希望无论调用者是结构体变量还是指针,都能统一处理,通常会使用指针接收者。

下面两个写法等价吗 ​

bash

type Person struct {
	Name string
	Age  int
}

// 方法 - 表示这是 Person 的行为
func (p Person) say() {
  fmt.Println("hello world")
}

// 函数 - 表示这是一个独立的操作
func say(p Person) {
  fmt.Println("hello world")
}

// 方法调用 - 面向对象风格
person.say()

// 函数调用 - 函数式风格  
say(person)

any ​

any 是 interface{} 的别名,Go 1.18+ 引入 any 类型,它表示任何类型,包括 nil。