golang 4

Golang 2. 함수 2)클로저(closure), 지연호출(defer), 패닉과 복구(panic and recover)

1. 클로저(closure) 클로저(익명함수) 안에서 바깥에 있는 변수에 접근하기 예시 y=ax-b함수 func main() { a, b := 4, 9 f := func(x int) int{ return a*x - b } y := f(5) fmt.Println(y) // 11출력 } 클로저를 리턴하는 함수 형태 - func 함수명() func(파라미터명 자료형) 리턴값_자료형 예시 y=ax-b func calc() func(x int) int{ a,b := 4,7 return a*x-b } func main() { f := calc() /* calc함수를 실행하여 리턴값으로 나온 클로저를 변수에 저장 * 만약 일반 함수를 변수 f에 대입시킬 경우 f := calc형태가 된다. */ fmt.Println(..

Golang 2. 함수 1)함수의 리턴값/ 변수,슬라이스,맵에 함수 대응하기/클로저

1. 리턴값 func sumAndDiff(a int, b int) (int, int){ return a+b, a-b } func main() { sum, diff := sumAndDiff(8, 20) fmt.Println(sum, diff) } func sumAndDiff(a int, b int) (sum int, diff int){ sum = a+b diff = a-b return } func main(){ add, minus := sumAndDiff(44, 33) fmt.Println(add, minus) } //가변인자 사용하기 func sum(n ...int) int{ total := 0 for _, value := range n{ total += value } return total } func..

Golang 1. 기본 문법 2)배열, slice, map

1. 배열 선언 //3가지 모두 가능 var a [5]int = [5]int{11,22,33,44,55} var a = [5]int{11,22,33,44,55} a:= [5]int{11,22,33,44,55} ...를 사용하면 초기화할 배열 요소(값)의 개수에 따라 자동으로 크기 설정 x := [...]string{"train", "airplane", "car", "bus"} //초기화 할 요소가 4개이며 ...에따라 배열 크기는 자동적으로 4로 설정된다. 2. 슬라이스 선언 var a []int = make([]int, 5) //슬라이스 길이 : 5 var b = make([]int, 5) c := make([]int, 5) var d = make([]int, 5, 10) //길이가 5이고 용량이 10..

Golang 1. 기본 문법 1)타입, for, switch문

프로그래밍 기술은 빠르게 발전하며 개발자는 그에맞춰 새로운 기술을 꾸준히 습득해야 한다. 한국은 전자정부프레임워크, Java공화국이다. 네이버, 카카오를 비롯한 대기업 뿐만 아니라 SI회사에서 파견을 나가도 대다수 Java 스프링으로 개발한다. 일본에서도 Java 수요가 높으며 할줄알면 먹고사는데 지장에 없다. 엔터프라이즈 형에 적합한 자바보다 새로운 언어에 도전하고 싶어졌다. 더 간결하고 빠른 언어로 웹서버를 구축해보고 싶다. 몇 달 전부터 Golang이 눈에 들어왔다. do, while이 없고 단순한 문법. 클래스가 없음. C, C++의 포인터가 있어 메모리 레이아웃이 가능하며 자바처럼 가비지 콜렉터가 있다.(이에 대한 장, 단점이 존재) 병행처리(conccurency), 고루틴, 패닉 등등 다양한 ..