Line directives in Go

This page was created on Tue Oct 27 2015 and last changed on Sat Oct 05 2024.

This is an example Go program showing the use of line-directives.

//line bogus.go:100
package main

import (
        "fmt"
        "runtime"
)

func main() {
        _, file, line, _ := runtime.Caller(0)
        fmt.Printf("%s:%d: line is now here.\n", file, line);
        //line monster.go:33
        _, file, line, _ = runtime.Caller(0)
        fmt.Printf("%s:%d: line is now here.\n", file, line);
}

(download)

The output of the example looks like this:

bogus.go:108: line is now here.
monster.go:33: line is now here.

As with C line directives, the line number in the directive refers to the next line of the file.


Copyright © Ben Bullock 2009-2024. All rights reserved. For comments, questions, and corrections, please email Ben Bullock (benkasminbullock@gmail.com). / Privacy / Disclaimer