Rust 学习笔记 01:简介与环境搭建

Rust 学习笔记 01:简介与环境搭建 “A language that doesn’t affect the way you think about programming, is not worth knowing.” – Alan Perlis 作为一名写了几年 Go 的程序员,习惯了 GC 的安逸,也忍受了 if err != nil 的繁琐。一直听说 Rust 有多强,但每次看到那陡峭的学习曲线和满屏的生命周期引用,都默默劝退。 2024 年了,是时候走出舒适区,挑战一下这个"编译器教你做人"的语言了。 这系列笔记不是官方教程的复读机,而是从一个 Go/Java 开发者的视角,记录学习过程中的困惑、对比和感悟。 1. 为什么要折腾自己? 如果 Go 是一把瑞士军刀,简单实用;那 Rust 就像是一把手术刀,精准锋利,但由于太锋利,很容易割到手。 对于 Go 开发者来说,Rust 的吸引力在于: 零成本抽象:不用担心封装会带来性能损耗。 没有 GC:从此告别 STW (Stop The World),虽然 Go 的 GC 已经很快了,但有些场景下,完全控制内存是刚需。 安全性:编译器会在编译阶段就拦下绝大多数内存错误和并发数据竞争问题。 2. 环境搭建 Rust 的安装体验和 Go 差不多,甚至更现代。 macOS/Linux 一行命令搞定: ...

2024-03-05 · 1 min · 203 words · 老墨

[GoLang避坑实战-01] Go 1.24 安装排雷指南:拒绝被"环境变量"折磨

大家好,我是极客老墨! 在正式开始这套 Golang 基础教程之前,老墨要先跟你聊聊一个很多人容易忽略的问题:环境配置。 你可能会想:“不就是装个 Go 嘛,有啥好说的?” 但老墨见过太多同学,拿着 Go 1.11 的版本跑 Go 1.18 的泛型代码,然后在群里问:“为什么我的代码报错?” 所以,磨刀不误砍柴工,咱们先把环境搞对,后面学起来才能一路畅通。 关于本教程 这套 Golang 教程分为三个部分: 基础教程(本系列):从零开始学习 Go 语言的核心语法和基础特性 高级教程(规划中):工程实践、性能优化、并发模式等进阶内容 Web 开发(规划中):Gin、GORM 等 Web 框架的实战应用 目前你正在阅读的是基础教程部分,适合 Go 语言初学者或想系统学习 Go 基础的开发者。高级教程和 Web 开发部分老墨会在后续完善后陆续发布,敬请期待! 1. Go 版本选择 1.1 本教程使用的版本 本教程所有代码基于 Go 1.24+ 编写和测试。 由于老墨编写这一套教程时间跨度较大,可能教程中的 Go 版本较旧,但是老墨建议大家都使用最新的 LTS 版本即可,GoLang 官方保证了兼容性,所以理论上最新版本的 Go 都可以跑本教程的代码。 1.2 如何查看你的 Go 版本 1go version 如果输出类似这样,就说明安装成功了: go version go1.24.0 darwin/arm64 1.3 版本兼容性说明 Go 版本 本教程兼容性 说明 1.24+ 完全兼容 推荐使用,支持所有最新特性 1.21-1.23 完全兼容 支持泛型、slog 等特性,可以正常使用 1.18-1.20 部分兼容 泛型相关代码可以跑,但 slog 等新特性不可用 1.16-1.17 不兼容 不支持泛型,部分代码无法运行 < 1.16 不兼容 太老了,建议升级 2. 安装 Go 2.1 macOS 安装 方法一:使用 Homebrew(推荐) ...

2022-07-10 · 3 min · 449 words · 老墨