반응형

Programming language/Golang 13

[Go] Method

1. Go 메서드(Method) 앞에서(Go 구조체) 언급했듯이 Go 언어는 객체지향 프로그래밍(OOP)을 고유의 방식으로 지원한다. 타 언어의 OOP의 클래스가 필드와 메서드를 함께 갖는 것과 달리 Go 언어에서는 struct가 필드만을 가지며, 메서드는 별도로 분리되어 정의된다. Go 메서드는 특별한 형태의 func 함수이다. 메서드는 함수 정의에서 func 키워드와 함수명 사이에 "그 함수가 어떤 struct를 위한 메서드인지"를 표시하게 된다. 흔히 receiver로 불리우는 이 부분은 메서드가 속한 struct 타입과 struct 변수명을 지정하는데, struct 변수명은 함수 내에서 마치 입력 파라미터처럼 사용된다. 예를 들어, 아래 예제는 Rect라는 struct를 정의하고 area() 라는..

[Go] Map 의 특정 key나 value 값으로 정렬하기

sort.Sort 메서드는 sort.Interface 정렬 인터페이스를 인자로 받는다. 정렬 인터페이스는 아래 3가지 Len(), Less(), Swap() 메서드를 구현하면 해당 구조체를 정렬할 수 있다. func Sort(data Interface) { n := data.Len() quickSort(data, 0, n, maxDepth(n)) } type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) ..

[Go] ch16 패키지

패키지 패키지란 Go언어에서 코드를 묶는 가장 큰 단위이다. main 패키지는 특별한 패티지로 프로그램 시작점을 포함한 패키지이다. 프로그램이 실행되면 운영체제는 프로그램을 메모리로 올린다. 이것을 로드라고 한다. 그런 다음 프로그램 시작점부터 한 줄씩 코드를 실행한다. 프로그램의 시작점이 main() 함수이고, main() 함수를 포함한 패키지가 main 패키지이다. 한 프로그램은 main 패키지 외에 다수의 다른 패키지를 포함할 수 있다. 원하는 기능을 제공하는 패키지가 있다면 import해서 사용하면 된다. 페키지를 찾기 위해 아래의 사이트를 참고할 수 있다. - https://golang.org/pkg/ Standard library - pkg.go.dev Directories ¶ Expand a..

[Go] ch15 문자열

문자열은 문자열의 집합이다. 문자열의 타입명은 string이다. 문자열 큰따옴표나 백퀴트로 묶어서 표시한다. 따옴표("") : 큰따옴표로 묶으면 특수 문자가 동작한다. 백쿼트(~표시 아래) : 백쿼트로 묶으면 특수 문자가 동작하지 않는다. 여러 줄에 걸쳐서 문자열 출력이 가능하다. str1 := "Hello \t 'world' \n" fmt.Println(str1) str2 := `Hello \t 'world' \n Testing back qoute` fmt.Println(str2) ----------------------------------------------- Hello 'world' Hello \t 'world' \n Testing back qoute rune 타입으로 한 문자 담기 문자 하나를..

[Go] ch14 포인터

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com 포인터란? 포인터는 메모리 주소를 값으로 갖는 타입이다. 메모리 주솟값을 변숫값으로 가질 수 있는 변수를 포인터 변수라고 한다. 다른 변수처럼 포인터 변수도 값을 담는 메모리 공간이 있다. 그 값으로 주소만 담을 수 있다. int 타입 변수 n의 메모리 주소는 0xc0000960..

[Go] ch13 구조체

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com 선언 및 기본 사용 여러 필드를 묶어서 하나의 구조체를 만든다. 배열이 같은 타입의 값들을 변수 하나로 묶어줬던 것과 달리 구조체는 다른 타입 값들을 변수 하나로 묶어주는 기능이다. 구조체 정의 하기 type 타입명 struct { 필드명 타입 ... 필드명 타입 } type 키..

[Go] 12 배열

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com 배열은 같은 타입의 데이터들로 이루어진 타입이다. 배열을 이루는 각 값은 요소라고 하고, 요소를 가리키는 위치값을 인덱스라고 한다. 배열은 같은 타입의 여러 데이터를 하나의 변수로 효과적으로 사용할 수 있도록 해준다. 예를 들어 최근 5일간 기온 데이터가 있다고 하자. 날짜마다 ..

[Go] 11 for문

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com for문 동작 원리 for 초기문; 조건문; 후처리 { 코드 블록 // 조건문이 true인 경우 수행된다. } 조건문이 true인 경우, 코드블럭을 수행하고 후처리를 한다. ( 조건문 결과 -> { } 코드 블록 수행 -> 후처리 ) 조건문이 false인 경우, 후처리 없이 fo..

[Go] 10 switch

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com switch 동작 원리 switch문은 값에 따라 다른 로직을 수행할 때 사용한다. switch문 구조는 다음과 같다. switch 비굣값 { // 검사하는 값이 온다. case 값1: // 비굣값과 값1이 같을 때 수행한다. 문장 case 값2: // 비굣값과 값2가 같을 때 ..

[Go] 09 조건문

본 게시물은 Tucker의 Go언어 프로그래밍을 참고해 작성한 게시물입니다. http://www.yes24.com/Product/Goods/99108736 Tucker의 Go 언어 프로그래밍 - YES24 게임 회사 서버 전문가가 알려주는 Go 언어를 내 것으로 만드는 비법구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어이다. 『Tucker의 Go 언어 프로그래밍』은 Go 언어로 ‘나만의 프로 www.yes24.com if문 기본 사용법 if문은 조건에 따라 분기하는 구문이다. 만족하는 조건문의 {}안에 있는 문장을 실행한다. 만족하는 조건문이 없으면 else 구문 {}안에 있는 문장을 실행한다. light := "red" if light == "green" { fmt.Println("길을 건..

반응형