>백엔드 개발 >Golang >Go에서 사용자 정의 유형에 대해 time.Time 메소드를 어떻게 호출할 수 있나요?

Go에서 사용자 정의 유형에 대해 time.Time 메소드를 어떻게 호출할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-12-18 10:24:15456검색

How Can I Call time.Time Methods on a Custom Type in Go?

이름이 지정된 유형의 호출 방법

시간 주위의 래퍼인 StartTime이라는 이름이 지정된 유형을 만들었습니다. JSON 역마샬링을 위한 시간입니다. . 그러나 StartTime 인스턴스에서는 Date()와 같은 time.Time 메서드를 호출할 수 없습니다.

이는 type 키워드를 사용하여 사실상 새로운 유형을 생성했기 때문입니다. 기존 time.Time 유형을 확장합니다. 자신만의 메소드를 추가하는 동안 원래 메소드를 유지하려면 유형 임베딩을 사용해야 합니다.

type StartTime struct {
    time.Time
}

임베딩을 사용하면 포함된 유형(이 경우 time.Time)의 필드와 메소드가 "승격"되고 다음과 같은 작업을 수행할 수 있습니다. 명명된 유형(StartTime)에서 액세스할 수 있습니다. 따라서 이제 myStartTime.Date()를 호출할 수 있습니다.

예:

package main

import (
    "fmt"
    "time"
)

type StartTime struct {
    time.Time
}

func main() {
    s := StartTime{time.Now()}
    fmt.Println(s.Date())
}

출력:

2009 November 10

위 내용은 Go에서 사용자 정의 유형에 대해 time.Time 메소드를 어떻게 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.