以下是 Go 脚本的示例,涵盖了不同的主题和用途:
- Hello, World!
go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
- 打印系统时间
go
package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now()
fmt.Println("当前时间:", currentTime)
}
- 计算两个数的和
go
package main
import "fmt"
func main() {
var num1, num2 int
fmt.Print("输入第一个数:")
fmt.Scanln(&num1)
fmt.Print("输入第二个数:")
fmt.Scanln(&num2)
sum := num1 + num2
fmt.Println("两数之和:", sum)
}
- 循环打印数字 1 到 10
go
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
}
- 判断一个数是否为素数
go
package main
import "fmt"
func isPrime(num int) bool {
if num < 2 {
return false
}
for i := 2; i*i <= num; i++ {
if num%i == 0 {
return false
}
}
return true
}
func main() {
num := 17 // 需要判断的数字
if isPrime(num) {
fmt.Println(num, "是素数")
} else {
fmt.Println(num, "不是素数")
}
}
- 求解斐波那契数列前 N 项
go
package main
import "fmt"
func fibonacci(n int) []int {
if n <= 0 {
return []int{}
}
fib := make([]int, n)
fib[0], fib[1] = 0, 1
for i := 2; i < n; i++ {
fib[i] = fib[i-1] + fib[i-2]
}
return fib
}
func main() {
n := 10 // 前 N 项
fib := fibonacci(n)
fmt.Println("斐波那契数列前", n, "项:", fib)
}
- 读取和写入文件
go
package main
import (
"fmt"
"io/ioutil"
)
func main() {
text := "这是要写入文件的文本"
// 写入文件
err := ioutil.WriteFile("file.txt", []byte(text), 0644)
if err != nil {
fmt.Println("无法写入文件:", err)
return
}
// 读取文件
data, err := ioutil.ReadFile("file.txt")
if err != nil {
fmt.Println("无法读取文件:", err)
return
}
fmt.Println("文件内容:", string(data))
}
- 实现简单的 HTTP 服务器
go
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!")
})
fmt.Println("服务器正在监听端口 8080...")
http.ListenAndServe(":8080", nil)
}
- 执行系统命令
go
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l") // 执行 ls -l 命令
output, err := cmd.Output()
if err != nil {
fmt.Println("命令执行出错:", err)
return
}
fmt.Println(string(output))
}
- 使用 Goroutines 实现并发计算
go
package main
import (
"fmt"
"sync"
)
func calculate(n int, wg *sync.WaitGroup) {
defer wg.Done()
sum := 0
for i := 1; i <= n; i++ {
sum += i
}
fmt.Printf("计算结果:%d\n", sum)
}
func main() {
var wg sync.WaitGroup
for i := 1; i <= 5; i++ {
wg.Add(1)
go calculate(100*i, &wg)
}
wg.Wait()
}
这些是一些简单的 Go 脚本示例,涵盖了不同的用途。您可以根据需要选择一个或多个脚本来运行和学习。