본문 바로가기

golang

(10)
append : 배열 합치기 append : 배열 합치기 var posts []extractedMonzee totalPages := getPages() for i := 1; i [[x], [x], [x]] : 배열 안에 배열 // posts = append(posts, extractedposts...) => [x x x] : 배열 요소들만 ...의 유무로 출력 값이 바뀐다.
channel 특징 channel은 block operating channel로 메세지가 들어올 때 까지 기다린다.
goroutine , channel goroutine 함수 앞에 go 를 붙여주면 병렬적으로 작업을 수행한다. 다만, main 함수가 기다려주지 않는다. Channel : main함수와 goroutine의 통신 기능 //bool 타입을 받는 채널 선언 channel := make(chan bool) result :=
값을 보기 좋게 출력 값을 보기 좋게 출력 func (a Account) String() string { return fmt.Sprint(a.Owner(), "'s account.\n Has: ", a.Balance()) } fmt.Println(account) //출력 : joohwan's account. Has: 10
method & error 만들기 1. method 만들기 // Deposit x amount on your account func (a Account) Deposit(amount int) { a.balance += amount } // func 와 Deposit 사이에 a Account를 넣어줘야 한다. // 복사본이 아닌 값을 받아오려면 Account를 *Account로 수정해야 한다. 2.error 만들기 // Withdraw x amount from your account var errNomoney = errors.New("Can't withdraw") func (a *Account) Withdraw(amount int) error { if a.balance < amount { return errNomoney } a.balance..
Struct 맛보기 Struct 맛보기 package main import "fmt" type person struct { name string age int favFood []string } // test func main() { favFood := []string{"A","B"} joohwan := person{name:"joohwan", age:27, favFood:favFood} fmt.Println(joohwan.name) }
Maps Maps // test func main() { jootang2 := map[string]string{"name": "jootang2" , "age" : "27"} for _,value := range jootang2 { fmt.Println(value) } } //[string] => key의 type // string => value의 type
array & slice array & slice func main() { names := []string{"juhwan", "john", "jootang2"} // 길이를 지정할 필요 없음 names = append(names,"angel") // append는 새로운 slice 타입을 반환함 fmt.Println(names) } // array : 길이를 지정해줘야함 // slice : 길이 지정할 필요 없음