- Go is a general-purpose language that bridges the gap between efficient statically typed languages and productive dynamic language.
- Go is an open source programming language. Go makes it easy to build simple, reliable, and efficient software.
2. Who am I
Pravin Mishra
Software Engineer @ShepHertz
Working on App42 PaaS (Public Cloud
Platform-as-a-Service)
Keep in touch - @pravinmishra88
3. What is Go?
- Go is a general-purpose language that bridges the gap
between efficient statically typed languages and
productive dynamic language.
- Go is an open source programming language. Go makes it
easy to build simple, reliable, and efficient software.
4. Go
• Initially developed at Google
• Created by Ken Thompson (Unix), Rob Pike
(Plan 9), and Russ Cox (libtask)
• Development started in 2007
• First release in 2009 (Fairly new!)
5. Features
●
Simple, minimal syntax
●
Fast compilation times
●
Easy concurrency support via goroutines
●
Garbage-collected
●
A flexible interface system
●
Statically linked binaries
●
Simple & Fun!
6. Language focus
• System programming
• Networked / multi-core
• Fast
• Compatible with C
• Best of static typed language and dynamic
typed languages
9. Strong types
func main() {
var str string
var value int
str = "abc"
value = 123
str + value
}
$ go run strong_type.go
prog.go:8: invalid operation: str + value (mismatched types
string and int)
[process exited with non-zero status]
10. Static Typed
// types.go
func main() {
var a string
a = 123
}
$ go run types.go
prog.go:5: cannot use 123 (type int) as type string in
assignment
[process exited with non-zero status]
11. with dynamic casting
package main
import ( "fmt" )
func main() {
a := 123
fmt.Printf("Value of a: %d", a)
}
- Value of a: 123
12. User defined types
package main;
type Animal struct {
Name string
Age int
}
func main() {
var anaconda Animal
}
13. Compiler
• Uses GCC as back end
• Checks for unused packages and variables
• Checks types and return values
14. Go tools
• go fmt -> format your source code (cool!)
• go get -> manage and install your
dependencies
• go build / run -> compile and run your
program
• go test -> run your tests