15.2. 프로그램언어 고(Go)에서의 구조체 필드에 접근하는 방법

프로그램언어 고(Go)의 구조체에 접근하기 위한 선택자 사용 구조체에 접근하기 위한 선택자로 Go언어에서는 dot(.)을 사용합니다. 예를 들어 다음과 같은 구조체가 정의되어 있다고 가정했을 때, type person struct { name string age int } p := person{ name: “홍길동”, age: 30, } 이 구조체의 멤버에 접근하려면 다음과 같이 dot를 사용합니다. fmt.Println(p.name) // “홍길동” fmt.Println(p.age) // 30 dot … Read more

15.1. 프로그램언어 고(Go)에서의 구조체 선언과 초기화

프로그램언어 고(Go)의 기본 구조체 선언 고(Go) 프로그래밍 언어에서 기본 구조체를 선언하는 방법에 대해 설명드리겠습니다. 구조체는 서로 다른 타입의 데이터를 묶어서 사용할 수 있는 사용자 정의 데이터 타입입니다. go언어에서는 struct 키워드를 사용하여 구조체를 정의합니다. // Person 구조체 정의 type Person struct { name string age int } 위의 코드에서 Person이라는 구조체를 정의했습니다. 구조체 내부에는 name과 age라는 … Read more

14.3. 프로그램언어 고(Go)에서의 nil 포인터와 포인터 비교

프로그램언어 고(Go)의 nil 포인터 이해와 사용법 고(Go)언어의 nil 포인터에 대해 설명드리겠습니다. var pointer *int if pointer == nil { fmt.Println(“nil 포인터입니다”) } 고(Go)언어에서 nil은 포인터가 아무것도 가리키고 있지 않다는 것을 의미합니다. 위의 예제코드에서 pointer 변수는 *int 타입의 포인터 변수인데, 초기값이 nil입니다. 따라서 이 포인터 변수를 사용하려면 먼저 make나 new와 같은 함수를 사용하여 실제 메모리 공간을 … Read more

14.2. 프로그램언어 고(Go)에서의 포인터와 함수

프로그램언어 고(Go)의 함수에 포인터를 적용하는 방법 프로그램언어 고(Go)에서 함수에 포인터를 적용하는 방법은 다음과 같습니다. package main import “fmt” func main() { var a int = 10 // a 변수의 메모리 주소를 p에 할당 p := &a // p를 이용해 a 변수의 값 출력 fmt.Println(*p) } 위의 예제코드에서 보시다시피, 변수 a를 선언하고 그 변수의 메모리 주소를 … Read more

14.1. 프로그램언어 고(Go)에서의 포인터 사용법

프로그램언어 고(Go)의 기본적인 포인터 사용법 고(Go)언어에서 포인터는 메모리 주소를 가리키는 변수입니다. 포인터를 사용하면 메모리 주소에 직접 접근할 수 있어 효율적인 메모리 접근과 수정이 가능합니다. package main import “fmt” func main() { var a int = 10 // 정수형 변수 a를 선언하고 10을 저장 var b *int = &a // a 변수의 메모리 주소를 저장하는 포인터 … Read more

13.3. 프로그램언어 고(Go)에서의 맵 순회

프로그램언어 고(Go)의 맵 순회 방법 고(Go)언어에서 맵을 순회하는 방법은 주로 for range문을 사용합니다. for range문은 맵의 키와 값을 순회하면서 반복할 수 있게 해줍니다. 다음은 고(Go)언어에서 맵을 순회하는 예제 코드입니다. package main import “fmt” func main() { // 맵 선언 ages := map[string]int{ “Joseph”: 43, “Stephan”: 39, “Gabriel”: 31, } // 맵 순회 for name, age … Read more

13.2. 프로그램언어 고(Go)에서의 맵 키 확인

프로그램언어 고(Go)의 맵에서 특정 키 존재 여부 확인 방법 고(Go)의 맵에서 특정 키가 존재하는지 확인하는 방법에 대해 설명드리겠습니다. 예를 들어, 고언어에서 맵을 다음과 같이 정의했다고 가정합니다. m := map[string]int{“apple”: 10, “orange”: 5} 이 맵에 “apple”과 “orange”라는 key와 각각 10, 5라는 value가 저장되어 있습니다. 이 맵에서 “apple”이라는 key가 존재하는지 확인하는 방법은 다음과 같습니다. _, exists := … Read more

13.1. 프로그램언어 고(Go)에서의 맵 생성과 조작

프로그램언어 고(Go)의 맵 생성 방법 고(Go)언어의 맵 생성 방법을 설명드리겠습니다. 고(Go)언어에서 맵(map)은 키와 값의 쌍으로 이루어진 데이터 구조입니다. 맵을 생성하려면 make 함수를 사용하면 됩니다. package main import “fmt” func main() { // string을 key로, int를 value로 갖는 맵 생성 scores := make(map[string]int) // 데이터 추가 scores[“철수”] = 90 scores[“영희”] = 95 // 데이터 읽기 fmt.Println(scores[“철수”]) … Read more

12.3. 프로그램언어 고(Go)에서의 슬라이스 복사와 덧붙이기

프로그램언어 고(Go)에서의 슬라이스 복사하는 방법 프로그램언어 고(Go)에서 슬라이스를 복사하는 방법은 크게 값 복사와 참조 복사 2가지가 있습니다. 값 복사는 슬라이스를 다른 변수에 할당함으로써 구현할 수 있습니다. 이 때 원본 슬라이스와 복사된 슬라이스는 서로 독립적입니다. package main import “fmt” func main() { slice1 := []int{1, 2, 3} // 슬라이스 1 생성 slice2 := slice1 // slice1을 … Read more

12.2. 프로그램언어 고(Go)에서의 슬라이스 확장 및 축소

프로그램언어 고(Go)에서의 슬라이스 길이 확장 방법 프로그램언어 고(Go)에서 슬라이스의 길이를 확장하는 방법은 주로 append 함수를 사용하는 것입니다. 슬라이스는 크기가 동적으로 변화할 수 있는 배열과 유사한 자료구조입니다. 초기에 할당된 크기 이상으로 요소를 추가하면, 슬라이스는 자동으로 더 큰 메모리를 할당받아 크기를 늘려갑니다. package main import “fmt” func main() { // 슬라이스 생성 numbers := []int{1, 2, 3} … Read more