새로운 함수
Coddy의 Golang의 함수와 포인터 코스 레슨 — 19개 중 3번째.
지난 레슨에서 우리는 변수가 해당 공간을 가리키는 이름을 가진 메모리상의 객체 또는 공간이라는 것을 배웠습니다.
Go에는 메모리에 이름 없는 공간을 생성하는 함수가 있으며, new() 함수의 도움을 받아 이를 수행합니다. 구문은 다음과 같습니다:
coddy := new(string)여기서 우리는 coddy라는 이름과 string 타입을 가진 객체를 생성했으며, new() 함수는 해당 객체(공간)에 대한 포인터를 반환합니다.
이름을 출력하면 이 공간의 메모리 주소를 얻게 됩니다:
fmt.Println("Value:", coddy)결과는 다음과 같습니다:
Value: 0xc000014070다음과 같이 이 포인터에 값을 다시 할당할 수 있습니다:
coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)결과는 다음과 같습니다:
Value: Learn To Code with coddynew() 함수로 포인터를 생성할 때 기본값은 nil이 아니라는 점에 유의하세요. 변수와 마찬가지로 타입에 따라 다릅니다. 타입이 int이면 기본값은 0이고, string이면 빈 문자열이며, boolean이면 false입니다.
챌린지
쉬움사용자로부터 입력을 받아 다음을 수행하는 프로그램을 작성하세요:
- new() 함수를 사용하여 int 타입의 포인터를 생성합니다.
- 포인터의 default 값을 출력합니다.
- 사용자가 입력한 value 를 해당 포인터에 할당합니다.
- assignment 후의 포인터 값을 출력합니다.
직접 해보기
package main
import (
"fmt"
)
func main() {
// 사용자로부터 입력을 받습니다. 이 부분을 변경하지 마세요!
var num int
fmt.Scanln(&num)
// new() 함수를 사용하여 int 타입의 포인터를 생성합니다.
// 포인터의 기본값을 출력합니다.
fmt.Println("Default value of the pointer:", ?)
// 사용자가 입력한 값을 해당 포인터에 할당합니다.
// 할당 후 포인터의 값을 출력합니다.
fmt.Println("Value of the pointer after assignment:", ?)
}