Tipe Data
Integer
int8 16 32 64
uint8
float32 64
complex64 128
Alias
byte : untuk uint8
rune : int32
int : int32
uint : uint32
Boolean
true false
String
len(“string”)
Arary & Map
[]int {} map[string]int
Condition
var name = "A"
if name == "A" {
fmt.Println("Hello A")
} else if {
} else {
}Loop
for conter := 1; counter <= 10; counter ++ {
// statement
}
slice := []string{"aaaa"}
for index, name := range slice {
// statement
}Function
func halo(name string) string {
return "halo " + name
}
// multiple return
func getFullName() (string, string) {
return "halo", "hola"
}
firstNmae, _ := getFullName()
/**
Variadic Function
*/
func halo(name ...int) string {
var total int
for _, v := range name {
total += v
}
}
slice := []int{1,2,3,4}
halo(slice...)
// param or return any datatype
interface{}Defer, Panic, Recover
// manggil fungsi yang lain
defer function()
// mirip throw
panic
// catch
recoverStruct
type Customer struct {
Name, NPM string
Address string
Age int
}
joko := Customer {
Name := sss///sd//asd//asd/sad/a/sd
}
func (customer Customer) sayHi(name string) {
}Interface
type Animal interface {
getID() string
}
nil
// Error
import "errors"
func Pembagi(nilai int, pembagi int) (int, error) {
if pembagi == 0 {
return 0, errors.New("gaboleh")
} else {
result := nilai / pembagi
return result, nil
}
}Type Assertions
var angka int = 1
var resultString string = angka.(int32)Pointer
- Golang defaultnya pass by value
- Pointer bisa buat data jadi pass by reference di golang
address1 := Address("Cimahi", "Jawabarat")
address2 := address1 // pass by value
address2 := &address1 // pass by reference
*address2 := address_baru // jadi berubah semua di memorynyaGOPATH
src/golang/
func init() {}
import package tapi ga dipake : _
Access Modifier
namaFunction() // mirip protect
NamaFunction() // mirip publicPackage
os
import "os"
os.Args
os.Getenvflag
import "flag"
var host *string := flag.String("host", "localhost", "Put your database here")
flag.Parse()
// go run file.go -host="localhost2"strings and strconv
import "strings"
strings.Trim(string, cutset)
strings.ToLower(string)
strings.ToUpper(string)
strings.Split(string, separator)
strings.Contains(string, search)
strings.ReplaceAll(string, from, to)
import "strconv"
parseBool
parseFloat
parseInt
// to string
FormatBool
FormatFloat
FormatInt
Atoi
ItoaMath
import "math"
Round
Floor
Ceil
Max
MinList
import "container/list"
// linked list
list.New()Container/ring
import "container/ring"
//circular linked list
ring.New(5)Sort
Len
Less
SwapTime
impoer "time"
time.Now()
time.Date()
time.Parse(layout, string)"reflect"
"regexp"Other Sources
CRUD
Generate CRUD Golang code from SQL | Compare db/sql, gorm, sqlx, sqlc
Welcome back to the backend master class!
https://dev.to/techschoolguru/generate-crud-golang-code-from-sql-and-compare-db-sql-gorm-sqlx-sqlc-560j