Go Code Syntax Highlighting Examples
This page demonstrates the enhanced code highlighting capabilities of GolangMastery.
Basic Hello World#
example.go
package mainimport string">"fmt"func main() {string">"comment">// This is a commentfmt.Println(string">"Hello, World!")}
Functions and Types#
example.go
package mainimport (string">"fmt"string">"time")string">"comment">// Person represents a human beingtype Person struct {Name stringAge intBirthday 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 demonstrationconst pi = 3.14159var count int64 = 42string">"comment">// Boolean valuesvar isGolangFun bool = trueif isGolangFun {fmt.Println(string">"Learning Go is fun!")}}
Error Handling#
example.go
package mainimport (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 mainimport (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 = 5const numWorkers = 3jobs := make(chan int, numJobs)results := make(chan int, numJobs)string">"comment">// Start workersvar wg sync.WaitGroupfor w := 1; w <= numWorkers; w++ {wg.Add(1)go worker(w, jobs, results, &wg)}string">"comment">// Send jobsfor j := 1; j <= numJobs; j++ {jobs <- j}close(jobs)string">"comment">// Wait for all workers to completewg.Wait()close(results)string">"comment">// Collect resultsfor r := range results {fmt.Println(string">"Result:", r)}}