Go Code Syntax Highlighting Examples
This page demonstrates the enhanced code highlighting capabilities of GolangMastery.
Basic Hello World#
example.go
package main
import string">"fmt"
func main() {
string">"comment">// This is a comment
fmt.Println(string">"Hello, World!")
}
Functions and Types#
example.go
package main
import (
string">"fmt"
string">"time"
)
string">"comment">// Person represents a human being
type Person struct {
Name string
Age int
Birthday time.Time
}
func (p *Person) Greet() string {
return fmt.Sprintf(string">"Hello, my name is %s and I am %d years old.", p.Name, p.Age)
}
func NewPerson(name string, age int) *Person {
return &Person{
Name: name,
Age: age,
}
}
func main() {
person := NewPerson(string">"John Doe", 30)
fmt.Println(person.Greet())
string">"comment">// Numbers demonstration
const pi = 3.14159
var count int64 = 42
string">"comment">// Boolean values
var isGolangFun bool = true
if isGolangFun {
fmt.Println(string">"Learning Go is fun!")
}
}
Error Handling#
example.go
package main
import (
string">"errors"
string">"fmt"
string">"os"
)
func readFile(filename string) (string, error) {
if filename == string">"" {
return string">"", errors.New(string">"filename cannot be empty")
}
data, err := os.ReadFile(filename)
if err != nil {
return string">"", fmt.Errorf(string">"failed to read file: %w", err)
}
return string(data), nil
}
func main() {
content, err := readFile(string">"example.txt")
if err != nil {
fmt.Printf(string">"Error: %v\n", err)
return
}
fmt.Println(string">"File contents:", content)
}
Goroutines and Channels#
example.go
package main
import (
string">"fmt"
string">"sync"
string">"time"
)
func worker(id int, jobs <-chan int, results chan<- int, wg *sync.WaitGroup) {
defer wg.Done()
for j := range jobs {
fmt.Printf(string">"Worker %d started job %d\n", id, j)
time.Sleep(time.Second)
fmt.Printf(string">"Worker %d finished job %d\n", id, j)
results <- j * 2
}
}
func main() {
const numJobs = 5
const numWorkers = 3
jobs := make(chan int, numJobs)
results := make(chan int, numJobs)
string">"comment">// Start workers
var wg sync.WaitGroup
for w := 1; w <= numWorkers; w++ {
wg.Add(1)
go worker(w, jobs, results, &wg)
}
string">"comment">// Send jobs
for j := 1; j <= numJobs; j++ {
jobs <- j
}
close(jobs)
string">"comment">// Wait for all workers to complete
wg.Wait()
close(results)
string">"comment">// Collect results
for r := range results {
fmt.Println(string">"Result:", r)
}
}