在线 Go 语言编译器

在浏览器中编写、编译并运行 Go 代码,适合学习、练习与快速验证。

Go 代码编辑器

输出

标准输出(stdout)

 

标准错误(stderr)

 

使用说明

  • 在左侧编辑器编写 Go 代码(包含 package mainfunc main() 入口)。
  • 点击“运行代码”即可在线编译并执行程序。
  • 右侧面板展示输出与错误信息。
  • 绿色区域为标准输出(例如 fmt.Println 输出)。
  • 红色区域为编译/运行错误与警告。
  • 执行信息包含退出码与运行状态。
  • 快捷键:Ctrl+Enter(Mac 上为 Cmd+Enter)。

Go 基础

基本结构:

package main
import "fmt"

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

常用包:

  • fmt - 格式化 I/O
  • strings / strconv - 字符串处理与转换
  • sort - 排序工具
  • time - 时间与定时
  • math - 数学函数

类型与集合

切片与映射:

nums := []int{3, 7, 1, 9, 4}
m := map[string]int{"alice": 3, "bob": 5}

示例:

for i := 0; i < len(nums); i++ {
    fmt.Println(nums[i])
}
for k, v := range m {
    fmt.Println(k, v)
}

控制结构

条件与循环:

n := 7
if n%2 == 0 { fmt.Println("even") } else { fmt.Println("odd") }
for i := 0; i < 3; i++ { fmt.Println(i) }

函数与方法

函数示例:

func add(a, b int) int { return a + b }
func main() { fmt.Println(add(2, 3)) }

常见问题

支持哪些 Go 版本?

通常支持主流 Go 版本,具体实现以后端环境为准。

可以使用第三方库吗?

运行环境为沙箱,暂不支持在线引入外部依赖。建议使用标准库示例。

运行是否有时间限制?

有。为避免死循环并保证公平使用,编译/运行有时间限制,超时会自动终止。

可以保存代码吗?

暂不支持在线保存。建议将重要代码复制到本地,或使用收藏夹/笔记工具保存片段。

可以交互输入吗?

当前不支持交互式输入。可将测试数据直接写入代码中以进行验证。

示例程序(点击上方运行)

1. 递归计算阶乘

package main
import "fmt"

func fact(n int) int { if n <= 1 { return 1 } return n * fact(n-1) }
func main() { fmt.Println("5! =", fact(5)) }

2. 切片最大值

package main
import "fmt"

func main() {
    nums := []int{3, 7, 1, 9, 4}
    maxv := nums[0]
    for i := 1; i < len(nums); i++ {
      if nums[i] > maxv { maxv = nums[i] }
    }
    fmt.Println("Maximum:", maxv)
}