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官网中选择适合自己系统的安装包,根据向导完成安装。
2)我选择Goland作为coding的IDE,它属于jetbrain全家桶,界面风格统一,方便上手。大学生可以使用教育邮箱免费使用专业版(一年认证一次)
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程序
根据Go语言的规范,
main函数必须在main包中。用于标识可执行程序的入口。