当前位置: 首页 > news >正文

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程序

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

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

四、基础语法注意事项

  1. 变量声明

    • 三种方式:
      var name string = "Tom"  // 显式类型声明
      var age = 20            // 类型推导
      height := 180           // 短声明(函数内使用)
      
    • 多变量声明:
      var a, b, c int = 1, 2, 3
      x, y := 10, "hello"
      
  2. 数据类型

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

    • 必须显式转换(不支持隐式):
      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查看标准库函数文档

七、学习资源

  • 官方文档:https://golang.org
  • 标准库API:https://pkg.go.dev

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

相关文章:

  • 【Docker】如何在Linux、Windows、MacOS中安装Docker
  • HTTP代理与HTTPS代理的区别及HTTPS的工作原理
  • 基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)
  • 嗯,用户想开发一个竹类知识宝库小程序?
  • Docker 搭建 Redis 数据库
  • PCL 点云添加高斯噪声
  • 【Python量化金融实战】-第2章:金融市场数据获取与处理:2.1 数据源概览:Tushare、AkShare、Baostock、通联数据(DataAPI)
  • Unity实用技能-UI与粒子效果总结
  • JavaScript系列(85)--包管理工具详解
  • 有哪些API接口可以提高信息获取效率?
  • 【LLM系列7】KTO 训练
  • BUUCTF-Web方向21-25wp
  • 【Mysql】事务
  • 算法与数据结构(环形链表II)
  • Python天梯赛L1-018-大笨钟详解
  • [杂学笔记]工厂模式、多态、内存空间区域划分、cp指令破坏软连接问题、UDP如何实现可靠传输、滑动窗口的原理、进程与线程、线程之间的通信
  • 案例|某开关站室外轮式巡检机器人解决方案
  • ELK之elasticsearch基本使用教程
  • 常用的HTML meta标签有哪些
  • 【SoC设计的简单艺术】第九章:芯片级的复杂性
  • 官方数据显示:我国心血管疾病患者已超3亿人
  • 墨西哥海军一载两百余人帆船撞上纽约布鲁克林大桥,多人落水
  • 视频丨歼-10CE首次实战大放异彩
  • 辽宁援疆前指总指挥王敬华已任新疆塔城地委副书记
  • 爬坡难下坡险,居民出行难题如何解?
  • 美联储计划裁员约10%