1. BASICS:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
-
package main
→ entry point -
import
→ bring in packages -
func main()
→ starting point
2. VARIABLES & CONSTANTS:
var name string = "Mie"
age := 35 // shorthand
const Pi = 3.14
-
var
→ explicit declaration -
:=
→ shorthand declaration (inside functions) -
const
→ immutable value
3. CONTROL STRUCTURES:
if x > 10 {
fmt.Println("Big")
} else {
fmt.Println("Small")
}
for i := 0; i < 5; i++ {
fmt.Println(i)
}
for _, v := range []string{"a", "b", "c"} {
fmt.Println(v)
}
switch day {
case "Mon":
fmt.Println("Start")
default:
fmt.Println("Other")
}
4. FUNCTIONS:
func add(a int, b int) int {
return a + b
}
// Multiple returns
func swap(x, y string) (string, string) {
return y, x
}
// Named returns
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
5. STRUCTS & METHODS:
type Person struct {
Name string
Age int
}
// method with value receiver
func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name)
}
// method with pointer receiver
func (p *Person) HaveBirthday() {
p.Age++
}
6. ARRAYS, SLICES & MAPS:
arr := [3]int{1, 2, 3}
slice := []int{1, 2, 3}
slice = append(slice, 4)
m := map[string]int{"a": 1, "b": 2}
fmt.Println(m["a"])
delete(m, "b")
7. POINTERS:
x := 10
p := &x // pointer to x
fmt.Println(*p) // dereference → 10
*p = 20
fmt.Println(x) // 20
8. INTERFACES:
type Speaker interface {
Speak() string
}
type Dog struct{}
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
var s Speaker = Dog{}
fmt.Println(s.Speak())
}
9. ERROR HANDLING:
import "errors"
func div(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
res, err := div(10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Result:", res)
}
Top comments (0)