추가로. 슬라이스의 포인터는 슬라이스가 참조하는 기본 배열의 첫 번째 요소를 가리킨다.
slice 값이 slice2로 복사되면 구조체의 각 필드값이 복사되는 것인데, 여기서 동일한 메모리 주솟값을 가지기에 slice와 slice2 모두 같은 배열 데이터를 가리키게 된다.
배열은 배열의 모든 값이 복사되는 것으로, arr 값이 arr2로 복사되더라도 둘은 메모리 공간이 다른 완전히 다른 배열이다.
= 메서드가 구조체의 필드와 별도로 선언되어, 특정 타입(구조체)에 대해 동작을 정의하는 방법
메서드를 정의하려면 함수 정의와 비슷하게 작성하지만, 함수 이름과 매개변수 리스트 사이에 메서드가 적용될 수신자(receiver)를 명시
package main
import "fmt"
// Person 구조체 정의
type Person struct {
Name string
Age int
}
// Person 구조체에 대한 메서드 정의
func (p Person) Greet() { // 여기서 (p Person)은 Greet 메서드가 Person 타입의 값을 수신자로 가진다는 것을 나타냄
fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age)
}
func main() {
// Person 구조체의 인스턴스 생성
p := Person{Name: "Alice", Age: 30}
// Greet 메서드 호출
p.Greet() // 출력: Hello, my name is Alice and I am 30 years old.
}
