일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- mutex
- Linux
- bitcoin
- 리뷰
- go언어
- write
- json
- GO 언어
- FOR
- range
- JavaScript
- go
- install
- File
- channel
- 책
- 영화
- Sync
- c++
- Close
- Callback
- http
- tcp
- window
- C
- package
- API
- Golang
- windows
- Python
- Today
- Total
목록분류 전체보기 (203)
Code Habit
Go 언어는 다음과 같이 간단하게 함수를 정의하고 호출할 수 있다. func 함수명(){} func hello() { fmt.Println("Hello, world!") } func world() { // 컴파일 에러 fmt.Println("world !"); } func main() { hello() } Go 언어는 함수 정의를 시작한 줄에서 { (여는 중괄호)가 시작된다. 다음 줄에 작성하면 컴파일 에러가 발생한다. ※ Go언어는 함수를 정의할 때 C, C++과 다르게 위치 제약이 없다. 즉 뒤에 정의해도 앞에서 사용할 수 있다. 함수에서 매개변수를 받고 값을 리턴하는 방법을 알아보겠다. func 함수명(매개변수명 자료형) 리턴값 자료형 {} func sum(a int, b int) int { ret..
맵은 키-값 형태로 자료를 저장한다. 또한 슬라이스와 마찬가지로 레퍼런스 타입이다. 다음과 같이 맵을 선언할 수 있다. var 맵명 map[키_자료형]값_자료형 var a map[string]int // 키는 string, 값은 int인 맵 선언 map은 make 함수를 사용하여 공간을 할당해야 값을 넣을 수 있다. // make 함수로 키는 string 값은 int인 맵에 공간할당 var a map[string]int = make(map[string]int) var b = make(map[string]int) c := make(map[string]int) 다음과 같이 map 생성과 동시에 값을 초기화할 수 있다. a := map[string]int{"Hello":10, "world":20} b := m..
슬라이스는 레퍼런스 타입이다. 내장된 배열에 대한 포인터이므로 슬라이스끼리 대입하면 값이 복사되지 않고 참조(레퍼런스)만 한다. a := []int{1, 2, 3} var b []int// 슬라이스로 선언 b = a// a를 b에 대입해도 요소가 모두 복사되지 않고 참조만 함 b[0] = 9// 슬라이스는 참조이므로 a[0], b[0]의 값이 모두 바뀜 fmt.Println(a) // [9 2 3] fmt.Println(b) // [9 2 3] 마찬가지로 함수의 매개변수에 배열을 넘기면 복사가 되지만 슬라이스를 넘기면 참조만 하게 된다. 따라서 함수 안에서 슬라이스의 요소를 변경하면 함수 바깥에 있는 슬라이스도 값이 바뀐다. 슬라이스의 요소를 모두 복사할 때는 copy 함수를 사용한다. copy(복사될 ..
슬라이스는 배열과 같지만 길이가 고정되어 있지 않고 동적으로 크기가 늘어난다. 또한, 배열과는 달리 레퍼런스 타입이다. var 슬라이스명 []자료형 var a []int // int형 슬라이스 선언 슬라이스는 배열과 달리 [](대괄호) 안에 길이를 지정하지 않는다. 이렇게 생성된 슬라이스의 길이는 0이다. 슬라이스는 make 함수를 사용하여 공간을 할당해야 값을 넣을 수 있다. var a []int = make([]int, 5) // make 함수로 int 형에 길이가 5인 슬라이스에 공간 할당 var b = make([]int, 5) // 슬라이스를 선언할 때 자료형과 [] 생략 c := make([]int, 5) // 슬라이스를 선언할 때 var 키워드, 자료형과 [] 생략 슬라이스를 생성하고 공간을..
Go 언어에서 배열은 다음과 같이 사용한다. var 배열명 [길이]자료형 var a [5]int a[2] = 7 fmt.Println(a) // [0 0 7 0 0] 배열을 생성하면서 값을 초기화 하려면 다음과 같이 쓰면 된다. var a [5]int = [5]int{32, 29, 78, 16, 81} // int 형이며 길이가 5인 배열을 선언하고 초기화 var b = [5]int{32, 29, 78, 16, 81} // 배열을 선언할 때 자료형과 길이 생략 c := [5]int{32, 29, 78, 16, 81} // 배열을 선언할 때 var 키워드, 자료형과 길이 생략 ...을 사용하면 초기화할 값의 개수에 따라 자동으로 크기가 설정된다. c := [...]int{32, 29, 78, 16, 81}..
StretchDIBits 함수를 사용하여 이미지 파일을 화면상(윈도우)에 출력할 수 있다. VOID CTestCtrl::OnPaint( HDC /*hDC*/ ) { CPaintDC dc( m_hWnd );// 함수 종료시 지가 알아서 release 함 CDC mDC; CBitmap mBitmap; CBitmap mBitmap_old; CRect rect; GetClientRect(&rect); mDC.CreateCompatibleDC(dc); mBitmap.CreateCompatibleBitmap(dc, rect.right, rect.bottom); mBitmap_old = mDC.SelectBitmap(mBitmap); int width = rect.Width(); int height = rect.He..
switch 분기문을 사용하면 다양한 조건을 좀 더 간단하게 표현할 수 있다. switch 변수 { case 값1: fmt.Println("case 1") case 값2: fmt.Println("case 2") default: fmt.Println("default") } Go 언어의 switch 분기문은 C와는 달리 case에서 break 키워드를 생략한다. 변수는 숫자뿐 아니라 문자열도 사용할 수 있고 break를 사용하여 문장 실행을 중단할 수도 있다. s := "Hello" switch s { case "Hi": fmt.Println("Hi") case "Hello": fmt.Println("Hello") break; fmt.Println("everyone") } fallthrough 키워드를 사용..