Day 1: 从零突破 - Go基础语法快速入门

目录

  • Day 1: 从零突破 - Go基础语法快速入门
    • 1. 安装Go环境(或使用Go Playground快速体验)
      • 安装Go环境
      • Go Playground快速体验
    • 2. 基础语法
      • 2.1 变量声明
      • 2.2 常量
      • 2.3 基础类型
    • 3. 控制结构
      • 3.1 if-else
      • 3.2 for循环
      • 3.3 switch
    • 4. 函数基础
      • 4.1 参数和返回值
      • 4.2 多返回值
      • 4.3 匿名函数
    • 5. 练习
      • 5.1 实现FizzBuzz
      • 5.2 计算斐波那契数列
    • 总结


Day 1: 从零突破 - Go基础语法快速入门

Go语言(又称Golang)是一种高效、简洁的现代编程语言,广泛应用于系统编程、Web开发和云服务等领域。本文将带你快速掌握Go的基础语法,从环境安装到变量声明、控制结构、函数定义,最后通过练习巩固所学知识。无论你是初学者还是有经验的开发者,这篇博客都能帮你快速上手Go语言。


1. 安装Go环境(或使用Go Playground快速体验)

安装Go环境

在开始编写Go代码之前,你需要安装Go运行时环境。以下是安装步骤:

  1. 访问Go官网,下载适合你操作系统的安装包(Windows、macOS或Linux)。
  2. 根据安装向导完成安装过程。
  3. 安装完成后,打开终端,输入以下命令验证安装是否成功:
    go version
    
    如果显示版本号(如go1.21.0),说明安装成功。

Go Playground快速体验

如果你暂时不想安装本地环境,可以使用Go Playground。这是一个在线工具,允许你直接在浏览器中编写和运行Go代码,非常适合快速体验Go语言。


2. 基础语法

2.1 变量声明

Go语言提供了两种主要的变量声明方式:使用var关键字和短变量声明:=

  • 使用var关键字:显式指定变量类型,适用于任何场景。

    var a int = 10        // 声明一个整数变量
    var b string = "Hello" // 声明一个字符串变量
    
  • 短变量声明:=:在函数内部使用,编译器会自动推导类型,语法更简洁。

    c := 20      // 自动推导为int类型
    d := "World" // 自动推导为string类型
    

2.2 常量

常量使用const关键字声明,值在定义后不可更改。

const Pi = 3.14      // 定义一个浮点常量
const Name = "Go"    // 定义一个字符串常量

2.3 基础类型

Go语言内置了多种基础数据类型,以下是常用的几种:

  • int:整数类型,支持不同位宽(如int8int16int32int64)。
  • string:字符串类型,用于存储文本。
  • bool:布尔类型,取值为truefalse

示例:

var num int = 42           // 整数
var message string = "Hello, Go!" // 字符串
var isGoFun bool = true    // 布尔值

3. 控制结构

3.1 if-else

Go的if-else语句用于条件判断,语法简洁,条件表达式无需括号。

num := 10
if num > 0 {
    fmt.Println("正数")
} else {
    fmt.Println("非正数")
}

3.2 for循环

Go语言只有一种循环结构:for循环,但它非常灵活,支持多种形式。

  • 标准for循环

    for i := 0; i < 5; i++ {
        fmt.Println(i) // 输出 0, 1, 2, 3, 4
    }
    
  • 类似while的循环

    sum := 0
    for sum < 50 {
        sum += 10
    }
    fmt.Println(sum) // 输出 50
    

3.3 switch

switch语句用于多分支条件判断,每个case默认自动break,无需显式添加。

day := "Monday"
switch day {
case "Monday":
    fmt.Println("周一")
case "Friday":
    fmt.Println("周五")
default:
    fmt.Println("其他日子")
}

4. 函数基础

4.1 参数和返回值

Go函数使用func关键字定义,可以指定参数和返回值类型。

func add(a int, b int) int {
    return a + b
}

调用示例:

result := add(3, 4) // result = 7

4.2 多返回值

Go支持函数返回多个值,这在错误处理中尤为常见。

func divide(a float64, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("除数不能为零")
    }
    return a / b, nil
}

调用示例:

result, err := divide(10, 2)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(result) // 输出 5
}

4.3 匿名函数

匿名函数是没有名称的函数,可以直接定义并使用,常用于回调或临时逻辑。

func main() {
    add := func(a int, b int) int {
        return a + b
    }
    fmt.Println(add(5, 6)) // 输出 11
}

5. 练习

5.1 实现FizzBuzz

问题:编写一个程序,打印1到100的数字,但对于3的倍数打印"Fizz",5的倍数打印"Buzz",既是3又是5的倍数打印"FizzBuzz"。

解答

package main

import "fmt"

func main() {
    for i := 1; i <= 100; i++ {
        if i%3 == 0 && i%5 == 0 {
            fmt.Println("FizzBuzz")
        } else if i%3 == 0 {
            fmt.Println("Fizz")
        } else if i%5 == 0 {
            fmt.Println("Buzz")
        } else {
            fmt.Println(i)
        }
    }
}

5.2 计算斐波那契数列

问题:编写一个函数,计算斐波那契数列的第n项(n从0开始,0, 1, 1, 2, 3, 5, 8…)。

解答

package main

import "fmt"

func fibonacci(n int) int {
    if n <= 0 {
        return 0
    }
    if n == 1 {
        return 1
    }
    a, b := 0, 1
    for i := 2; i <= n; i++ {
        a, b = b, a+b
    }
    return b
}

func main() {
    fmt.Println(fibonacci(6)) // 输出 8
}

总结

通过这篇博客,你已经学习了Go语言的基础语法,包括环境搭建、变量声明、控制结构、函数定义以及两个经典练习。Go语言以其简洁、高效和强大的并发支持而著称,是现代开发的绝佳选择。

你可能感兴趣的:(Day 1: 从零突破 - Go基础语法快速入门)