Golang概述


一、Go语言的核心特点

  1. 简洁高效

    • 语法类似C,但简化了复杂性(如无分号、自动垃圾回收)。
    • 编译速度快,支持静态链接,生成独立的二进制文件。
  2. 并发模型

    • 原生支持协程(goroutine)和通道(channel),简化并发编程。
    • 基于CSP(Communicating Sequential Processes)模型。
  3. 应用领域

    • 区块链、后端服务、云计算/云服务等。

二、开发环境搭建

  1. SDK安装

    • Windows :下载对应版本(32位/64位),解压后配置环境变量:
      • GOROOT:SDK安装路径(如 D:\go)。
      • PATH:添加 %GOROOT%\bin
      • GOPATH:工作目录(项目路径,如 D:\goproject)。
    • Linux/Mac :解压至 /opt/go,配置环境变量类似。
  2. 开发工具

    • 推荐使用 VSCode,安装Go插件支持语法高亮、调试等功能。

三、第一个Go程序

go 复制代码
package main  // 声明包名(main包为程序入口)
import "fmt"  // 导入标准库fmt

func main() {
    fmt.Println("Hello, World!")  // 输出语句
}
  • 运行方式
    • 编译执行:go build hello.go → 生成可执行文件。
    • 直接运行:go run hello.go

四、基础语法注意事项

  1. 变量声明

    • 三种方式:

      go 复制代码
      var name string = "Tom"  // 显式类型声明
      var age = 20            // 类型推导
      height := 180           // 短声明(函数内使用)
    • 多变量声明:

      go 复制代码
      var a, b, c int = 1, 2, 3
      x, y := 10, "hello"
  2. 数据类型

    • 基本类型int, float32/64, bool, string
    • 派生类型:指针、数组、结构体等。
    • 默认值 :数值类型为0,字符串为"",布尔为false
  3. 类型转换

    • 必须显式转换(不支持隐式):

      go 复制代码
      var i int = 42
      var f float64 = float64(i)
  4. 运算符

    • 算术:+, -, *, /, %, ++, --
    • 比较:==, !=, >, <
    • 逻辑:&&, ||, !

五、代码规范与工具

  1. 注释

    • 单行注释://
    • 多行注释:/* ... */
  2. 代码风格

    • 缩进使用Tab,运算符两侧加空格。
    • 使用gofmt工具自动格式化代码。
  3. 常见错误

    • 变量未使用、导入未使用的包会编译失败。
    • 大括号不可换行(如 if { ... })。

六、常用命令

命令 说明
go version 查看Go版本
go env 查看环境变量配置
go doc fmt.Println 查看标准库函数文档

七、学习资源


此章节为Go语言的基础入门,重点在于环境配置、语法基础和代码规范,为后续深入学习打下基础。

相关推荐
canonical_entropy1 分钟前
NopGraphQL 的设计创新:从 API 协议到通用信息操作引擎
后端·低代码·graphql
步行cgn5 分钟前
Java项目包结构设计与功能划分详解
java·开发语言·架构·mvc
ss27325 分钟前
手写MyBatis第92弹:SqlSource体系、SqlNode树与Trim标签实现原理全揭秘
java·开发语言
2501_9159090632 分钟前
iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程
android·开发语言·ios·小程序·uni-app·php·iphone
charlie1145141911 小时前
精读C++设计模式20 —— 结构型设计模式:桥接模式
开发语言·c++·学习·设计模式·桥接模式·c++23·概论
阿杆1 小时前
从思路到落地:用 Redis 搭建超低延迟在线特征存储库
redis·后端
235161 小时前
【LeetCode】46. 全排列
java·数据结构·后端·算法·leetcode·职场和发展·深度优先
heyCHEEMS2 小时前
最长连续序列 Java
java·开发语言·算法
猎豹奕叔2 小时前
一次TraceId的问题分析与过程思考
后端
waves浪游2 小时前
C++多态
开发语言·c++