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 :
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 :
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