第0篇:go语言上手的准备工作|青训营

65 阅读3分钟

1.go语言的优势

  • 简洁易学:Go语言拥有简洁的语法和清晰的结构,易于上手并快速掌握。它摆脱了其他语言中繁琐的语法规则,提供了一种更简单、更直观的编程体验。
// Go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

// Java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

  • 并发编程支持:Go语言天生支持并发编程,提供了轻量级的协程(goroutine)和通道(channel)机制。这使得编写高效的并发程序变得更加简单,可以充分利用多核处理器的性能。而Java中需要使用线程(Thread),使得更加轻便。
// Go语言
package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    wg.Add(2)

    go func() {
        defer wg.Done()
        fmt.Println("Goroutine 1")
    }()

    go func() {
        defer wg.Done()
        fmt.Println("Goroutine 2")
    }()

    wg.Wait()
}

// Java
public class Main {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            public void run() {
                System.out.println("Thread 1");
            }
        }).start();

        new Thread(new Runnable() {
            public void run() {
                System.out.println("Thread 2");
            }
        }).start();
    }
}

  • 高效的编译和执行速度:Go语言编译器快速而高效,生成的可执行文件独立且运行速度优秀。对于大型项目,Go语言的编译速度比许多其他语言更快,因此可以快速迭代开发。
  • 内置的并发模型:Go语言提供了内置的并发原语,使得编写并发程序变得更加容易。通过使用goroutine和channel,可以轻松实现并发操作,并避免传统的锁和线程同步机制带来的复杂性。
  • 垃圾回收:Go语言引入了自动垃圾回收机制,开发者无需手动管理内存。垃圾回收器会在运行时自动识别不再使用的对象并回收它们,大大减轻了开发人员的负担。
  • 丰富的标准库:Go语言提供了丰富而强大的标准库,涵盖了网络、文件处理、加密、测试等众多领域。这些标准库被广泛认为是Go语言的核心优势之一,可以大幅度减少开发时间和工作量。

总之,Go语言以其简洁性、高效性和并发性而脱颖而出。它是一种现代化的编程语言,非常适合构建高性能和可扩展的应用程序。无论是开发网络服务器、数据处理工具还是分布式系统,Go语言都能带来极大的便利和效率。

2.开发环境搭建

1)在go官网中选择适合自己系统的安装包,根据向导完成安装。

安装包.png

2)我选择Goland作为coding的IDE,它属于jetbrain全家桶,界面风格统一,方便上手。大学生可以使用教育邮箱免费使用专业版(一年认证一次)

goland启动.png

3.常用命令

  • go run:用于编译并运行Go程序。

     go run main.go
    
  • go build:用于将Go代码编译为可执行文件。

    go build main.go
    
  • go fmt:用于格式化代码,使其符合Go语言的风格。

    go fmt main.go
    
  • go test:用于运行Go的测试文件。

    go test
    
  • go get:用于下载、安装或更新依赖的远程包。

    go get github.com/example/package
    
  • go mod init:用于初始化Go模块(项目)。

    go mod init example.com/mypackage
    
  • go mod tidy:根据导入的包列表自动添加、删除或更新Go模块的依赖项。(依据mod文件)

    go mod tidy
    
  • go doc:用于查看Go文档。

    go doc fmt.Printf
    
  • go vet:用于静态分析Go代码,并检查其中的错误和潜在问题。

    go vet main.go
    
  • go clean:用于清理编译生成的文件和缓存。

    go clean
    

4.Hello World-第一个go程序

新建.png

新建1.png

完成.png 根据Go语言的规范,main函数必须在main包中。用于标识可执行程序的入口。

5.推荐阅读

《go语言圣经》
菜鸟教程-go
字节内部课程-go语言入门