在线 Go 语言编译器
在浏览器中编写、编译并运行 Go 代码,适合学习、练习与快速验证。
Go 代码编辑器
输出
标准输出(stdout)
标准错误(stderr)
执行信息
退出码:
运行状态:
使用说明
- 在左侧编辑器编写 Go 代码(包含
package main与func main()入口)。 - 点击“运行代码”即可在线编译并执行程序。
- 右侧面板展示输出与错误信息。
- 绿色区域为标准输出(例如
fmt.Println输出)。 - 红色区域为编译/运行错误与警告。
- 执行信息包含退出码与运行状态。
- 快捷键:
Ctrl+Enter(Mac 上为Cmd+Enter)。
Go 基础
基本结构:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
常用包:
fmt- 格式化 I/Ostrings/strconv- 字符串处理与转换sort- 排序工具time- 时间与定时math- 数学函数
类型与集合
切片与映射:
nums := []int{3, 7, 1, 9, 4}
m := map[string]int{"alice": 3, "bob": 5}
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)
}
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) }
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)) }
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)) }
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)
}
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)
}