> 백엔드 개발 > Golang > Golang 메소드의 형식에 중점을 둡니다.

Golang 메소드의 형식에 중점을 둡니다.

PHPz
풀어 주다: 2023-04-05 15:01:49
원래의
661명이 탐색했습니다.

Golang은 최근 몇 년간 등장한 프로그래밍 언어로 단순성, 효율성, 강력한 동시성이라는 장점을 가지고 있으며 백엔드 개발, 클라우드 컴퓨팅 및 기타 분야에서 널리 사용됩니다. Golang에서 메소드는 특정 작업을 완료하기 위해 구조, 인터페이스 및 기타 유형에 대해 정의할 수 있는 매우 중요한 프로그래밍 개념입니다. 이 기사에서는 Golang 메소드의 형식에 중점을 둘 것입니다.

  1. 메소드 정의

Golang의 메소드 정의 형식은 다음과 같습니다.

func (receiver type) methodName(parameterList) (returnTypeList) {
    // Code goes here
}
로그인 후 복사

그 중 수신자는 메소드가 속한 유형을 나타내며, 사용자 정의 구조 등을 포함하여 모든 유형이 될 수 있습니다. 메소드의 이름을 지정합니다. 매개변수 목록은 메소드의 매개변수 목록이 임의의 유형이거나 비어 있을 수 있습니다. returnTypeList는 메소드 반환 값의 유형 목록을 나타냅니다.

  1. 수신기 유형

Golang에서 수신기 유형은 메소드의 중요한 부분입니다. 개발자의 필요에 따라 포인터 유형 또는 값 유형이 될 수 있습니다.

값 유형 수신자 정의:

type Type struct {
    property int
}
func (t Type) MethodName() ReturnType {
    // Code goes here
}
로그인 후 복사

값 유형 수신자의 메소드는 값 유형 객체를 생성하고 메소드를 호출하여 구현할 수 있습니다.

포인터형 리시버 정의:

type Type struct {
    property int
}
func (t *Type) MethodName() ReturnType {
    // Code goes here
}
로그인 후 복사

포인터형 리시버의 메서드는 형 객체에 대한 포인터를 생성하고 메서드를 호출하여 구현할 수 있습니다. 메소드에서 유형 객체의 값을 변경해야 하는 경우 포인터 유형 수신기를 사용해야 합니다.

  1. 메서드 매개변수 및 반환 값

메서드의 매개변수 및 반환 값은 내장 유형, 사용자 정의 구조 등을 포함한 모든 유형이 될 수 있습니다. 매개변수와 반환값은 여러 개가 있을 수 있습니다. 반환값이 없으면 생략할 수 있습니다.

메서드 매개변수 정의:

type Type struct {
    property int
}
func (t *Type) MethodName(param1 string, param2 int) ReturnType {
    // Code goes here
}
로그인 후 복사

메서드 반환 값 정의:

type Type struct {
    property int
}
func (t *Type) MethodName() (ReturnType1, ReturnType2, error) {
    // Code goes here
}
로그인 후 복사

메서드가 하나의 값만 반환하는 경우 괄호를 생략할 수 있다는 점에 유의하세요.

  1. 메서드 호출

Golang에서 메소드 호출 형식은 다음과 같습니다.

variable.MethodName(param1, param2)
로그인 후 복사

여기서 변수는 해당 메소드가 속한 객체를 나타내고, MethodName은 메소드 이름, param1과 param2는 메소드의 매개변수 목록입니다.

변수가 포인터 유형인 경우 "*" 기호를 사용하여 역참조해야 합니다.

obj := &Type{}
obj.MethodName(param1, param2)
로그인 후 복사

변수가 값 유형인 경우 역참조 기호를 사용할 필요가 없습니다.

obj := Type{}
obj.MethodName(param1, param2)
로그인 후 복사
  1. 예제 코드

다음은 Golang 메서드의 정의와 호출을 보여주는 전체 예제 코드입니다.

package main

import (
    "fmt"
)

type Rectangle struct {
    length, width float64
}

func (r Rectangle) Area() float64 {
    return r.length * r.width
}

func (r *Rectangle) ScaleLength(factor float64) {
    r.length = r.length * factor
}

func main() {
    r := Rectangle{length: 5.0, width: 3.0}
    fmt.Println("Rectangle Area:", r.Area())

    r.ScaleLength(1.5)
    fmt.Println("Rectangle new length:", r.length)
}
로그인 후 복사

이 예제에서는 길이와 너비라는 두 가지 속성을 포함하는 Rectangle 구조를 정의합니다. 그런 다음 두 가지 방법을 정의합니다. Area는 직사각형의 면적을 계산하는 데 사용되고 ScaleLength는 직사각형의 길이를 비례적으로 조정하는 데 사용됩니다. 마지막으로 메인 함수에 Rectangle 객체가 생성되고 위의 두 메서드가 호출됩니다.

  1. 요약

이 글은 수신자 유형, 메소드 매개변수 및 반환 값, 메소드 호출 등을 포함한 Golang 메소드의 정의 형식에 중점을 둡니다. Golang의 핵심 기능인 메소드는 일상적인 프로그래밍 작업에서 중요한 역할을 하며 메소드 정의 및 호출 메소드를 익히는 것이 매우 필요합니다. 이 기사가 Golang 방법을 숙달하는 데 도움이 되기를 바랍니다.

위 내용은 Golang 메소드의 형식에 중점을 둡니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿