Skip to content

go notes

go notes

gin create router

router := gin.Default()

router.GET("/", func(c *gin.Context) { 
    c.JSON(200, gin.H { 
        "message": "hello world",
    })

})

router.Run()

setting up swagger docs with gin.

 go get -u github.com/swaggo/swag/cmd/swag
 go get -u github.com/swaggo/gin-swagger
 go get -u github.com/swaggo/files

go lang error handling

error vs panics

  • error -> programmatic error
  • panic -> programmer error

define custom error types :

type error interface { 
    Error() string
}

Creating a file parser error :

type ParseError struct { 
    Message string
    Line, Char int 
}

func (p *ParseError) Error() string { 
    // stdout the error
}

Deferred Functions

defer func() { 
if err := recover(); err != nil { 
        fmt.Printf("trapped panic")
}()

func panicF() { 

    panic(errors.New("unknown exception"))

    }
}

Interfaces

Creating an interface :

var t interface { 
    talk () string
}
type martian struct{}


func (m martian) talk() string { 
    return "nack nacK"
}


type laser int 


func (l laser) talk() string { 

    return strings.Repeat("pew", int(l))
}

Pointers

  • Declare and use pointers
  • Pointers and RAM