Online Go Compiler

Write, compile, run, and debug Go code online in a full-featured browser IDE. Work with multiple files, save your workspace, and collaborate in real time - no setup required.

Bibliotecas pré-instaladas
🚀 206,970 execuções totais (799 este mês)
Incorporar
Saída

Pratique Go com desafios de código

Resolva problemas práticos direto neste editor: rode os testes de exemplo, envie sua solução e receba uma revisão de código por IA.

Todos os desafios de Go
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Você vai aprender AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Dias em um Mês

Retorne quantos dias tem um mês, incluindo anos bissextos.

Você vai aprender Regras do calendárioFunções auxiliares
BeginnerConditionsFunctionsLearning-path
Fácil

Average of Three

Average three whole numbers.

Você vai aprender AritméticaDivisão
BeginnerLearning-pathVariables
Fácil

Produto escalar de dois vetores

Multiplique dois vetores elemento a elemento e some os resultados, a operação central de todo neurônio.

Você vai aprender VetoresProduto escalar
Redes neuraisaiaprendizado de máquina
Fácil

Largest of Three

Pick the largest of three numbers without a built-in max.

Você vai aprender ComparaçõesCombinar condições
BeginnerConditionsLearning-path
Fácil

Verificação de Número Primo

Decida se um número é primo.

Você vai aprender DivisibilidadeOtimizar laços
BeginnerLoopsNumbersStudent-beginner
Fácil

Number Triangle

Build a triangle of increasing numbers.

Você vai aprender Linhas crescentesContador entre linhas
BeginnerLearning-pathNested-loopsPatterns
Fácil

Número de Armstrong

Verifique se um número é igual à soma de seus dígitos elevados à quantidade de dígitos.

Você vai aprender Extrair dígitosPotências
BeginnerNumbersStudent-beginner
Fácil

Row Sums

Add up every row of a grid.

Você vai aprender Listas 2DLaços aninhados
BeginnerGridsLearning-path
Fácil

Min and Max Together

Find the smallest and largest value in one pass.

Você vai aprender Uma única passadaVários valores de retorno
ArraysBeginnerFunctionsLearning-path
Fácil

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

Você vai aprender Pares de índicesEvitar contagem dupla
ArraysBeginnerLearning-pathNested-loops
Fácil

Hollow Square

Draw the outline of a square with * characters.

Você vai aprender Detectar bordasMontar strings
BeginnerLearning-pathNested-loopsPatterns

🐹 Sobre este Executor Go online

O CodeUtility Go Executor permite escrever e executar código Go diretamente no seu navegador - sem instalação, configuração ou ambiente local. É alimentado por um sandbox seguro que suporta versões reais do compilador Go 1.19, 1.20 e 1.21.

Esta ferramenta compila e executa programas Go reais na nuvem, oferecendo um ambiente autêntico de Go. Você pode testar trechos curtos, experimentar com pacotes e explorar os poderosos recursos de concorrência do Go usando gorrotinas e canais.

É perfeita para aprender e praticar os conceitos fundamentais de Go, como variáveis, funções, structs, slices, maps, interfaces e tratamento de erros - tudo isso sem instalar nada localmente.

Seja explorando Go pela primeira vez, testando lógica de backend ou aprendendo como a concorrência funciona, o CodeUtility Go Executor oferece uma forma limpa, rápida e baseada no navegador de executar código Go instantaneamente.

Mais do que um executor de código

Use no mesmo executor um editor de vários arquivos, um terminal de execução isolado, bibliotecas específicas do ambiente, espaços de trabalho persistentes, compartilhamento e colaboração em tempo real.

Como usar este executor?

Escolha um ambiente de execução, abra ou crie um arquivo, escreva o código e selecione Executar. A saída aparece no terminal; usuários conectados podem manter arquivos em um espaço de trabalho, instalar bibliotecas e colaborar por meio de compartilhamentos.

  1. Selecione uma versão e edite o arquivo atual ou abra outro arquivo do espaço de trabalho.
  2. Execute o código, forneça dados no terminal quando solicitado e consulte o histórico de execuções salvo.
  3. Use bibliotecas, ferramentas do espaço de trabalho, compartilhamento e chat quando a tarefa exigir mais de um trecho de código.

💡 Noções básicas de Go e exemplos que você pode testar acima

1. Declarando variáveis e constantes

Use var ou := para declarar variáveis. Use const para constantes.

package main

var x int = 10
const Pi = 3.14

func main() {
    name := "Alice"
    isActive := true
    println(x, Pi, name, isActive)
}

2. Condicionais (if / switch)

Go suporta instruções if-else e switch com uma sintaxe limpa.

x := 2
if x == 1 {
    println("Um")
} else if x == 2 {
    println("Dois")
} else {
    println("Outro")
}

switch x {
case 1:
    println("Um")
case 2:
    println("Dois")
default:
    println("Outro")
}

3. Loops

Go usa apenas o loop for, mas ele pode agir como um loop while.

for i := 0; i < 3; i++ {
    println(i)
}

n := 3
for n > 0 {
    println(n)
    n--
}

4. Arrays

Arrays têm tamanho fixo. Use slices para listas dinâmicas.

var nums = [3]int{10, 20, 30}
println(nums[1])

5. Manipulação de slices

Use slices e as funções internas append, len, copy e a sintaxe de fatiamento.

fruits := []string{"apple", "banana"}
fruits = append(fruits, "cherry")
fruits = fruits[1:]  // slice
println(len(fruits))

for _, fruit := range fruits {
    println(fruit)
}

6. Entrada/Saída no console

Use fmt.Print, fmt.Scan e fmt.Println.

import "fmt"

var name string
fmt.Print("Digite seu nome: ")
fmt.Scan(&name)
fmt.Println("Olá", name)

7. Funções

Funções são declaradas com func e podem retornar múltiplos valores.

func greet(name string) string {
    return "Olá, " + name
}

message := greet("Alice")
println(message)

8. Maps

Maps são armazenamentos chave-valor. Declare com make().

ages := map[string]int{"Alice": 30}
ages["Bob"] = 25
println(ages["Alice"])

9. Tratamento de erros

Go usa múltiplos valores de retorno para erros em vez de exceções.

import "errors"

func fail() error {
    return errors.New("algo deu errado")
}

err := fail()
if err != nil {
    println(err.Error())
}

10. E/S de arquivos

Use os pacotes os e io/ioutil para ler/gravar arquivos.

import (
  "fmt"
  "os"
  "io/ioutil"
)

ioutil.WriteFile("file.txt", []byte("Olá Arquivo"), 0644)

data, _ := ioutil.ReadFile("file.txt")
fmt.Println(string(data))

11. Manipulação de strings

Use o pacote strings para operações com strings.

import "strings"

text := "  Olá Mundo  "
println(strings.TrimSpace(text))
println(strings.ToUpper(text))
println(strings.ReplaceAll(text, "Olá", "Oi"))

words := strings.Split(text, " ")
fmt.Println(words)

12. Structs e objetos

Use structs para definir tipos personalizados com métodos.

type Person struct {
  Name string
}

func (p Person) Greet() string {
  return "Oi, eu sou " + p.Name
}

p := Person{Name: "Alice"}
println(p.Greet())

13. Referências (ponteiros)

Go suporta ponteiros usando * e &.

x := 10
ptr := &x
*ptr = 20
println(x) // 20