> 백엔드 개발 > Golang > golang 형식 매개변수에 대한 요구사항은 무엇입니까?

golang 형식 매개변수에 대한 요구사항은 무엇입니까?

青灯夜游
풀어 주다: 2022-12-19 11:28:42
원래의
4742명이 탐색했습니다.

Go 언어의 함수 매개변수는 지역 변수인 형식 매개변수이며, 해당 값은 매개변수 호출자가 제공합니다. 인접한 형식 매개변수의 유형이 동일한 경우 처음 몇 개의 매개변수 유형은 다음과 같습니다. 생략하고 그냥 쓰세요. 마지막 매개변수의 유형이면 충분합니다. 구문은 "func funcName(형식 매개변수 1, 형식 매개변수 2 매개변수 유형 1, 형식 매개변수 3, 형식 매개변수 4 매개변수 유형 2, ...) (반환 값 목록) ) { //문을 실행합니다. ..반환 값 목록}".

golang 형식 매개변수에 대한 요구사항은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Go 언어 함수 매개변수

Go 언어에서 함수의 매개변수는 형식 매개변수입니다. 즉, 값으로 전달하는 경우 전달된 매개변수는 실제로 실제 매개변수가 아닌 실제 매개변수의 복사본입니다. 실제 매개변수. 형식 매개변수는 매개변수 호출자가 값을 제공하는 지역 변수입니다.

Go 언어에서는 인접한 여러 함수 매개변수의 유형이 동일한 경우 처음 몇 매개변수의 유형을 생략하고 마지막 매개변수의 유형만 작성하면 됩니다.

func funcName(param1, param2 paramType1, param3, param4 paramType2, ...)(returnVal returnType){	// 执行语句...
	return 返回值列表
}
로그인 후 복사

설명

  • 매개변수 param1과 매개변수 param2의 유형이 동일하므로 param1 뒤에 매개변수 유형을 생략하고 param2 뒤에 직접 유형을 쓸 수 있습니다.

  • param3 매개변수와 param4 매개변수는 동일한 유형이므로 param3 뒤의 매개변수 유형을 생략하고 param4 바로 뒤에 유형을 쓸 수 있습니다.

  • returnVal returnType은 함수 반환 값의 변수 이름과 유형을 설명하는 반환 값 목록입니다. 함수가 이름 없는 변수를 반환하거나 반환 값이 없는 경우 반환 값 목록에서 괄호를 생략할 수 있습니다.

Case

함수를 사용하여 두 숫자의 최대공약수를 구합니다

package main
import (
	"fmt"
)
func gcdNormal(x, y int) int {
	var n int
	if x > y {
		n = y
	} else {
		n = x
	}
	for i := n; i >= 1; i-- {
		if x%i == 0 && y%i == 0 {
			return i
		}
	}
	return 1
}
func main() {
	//用函数,实现计算两个数的最大公约数
	gcd := gcdNormal(10,20)
	fmt.Println("Gcd =", gcd)
}
로그인 후 복사

프로그램이 실행된 후 콘솔 출력은 다음과 같습니다.

golang 형식 매개변수에 대한 요구사항은 무엇입니까?

우리는 함수 gcdNormal, 두 개의 int 유형 매개변수 a와 b를 입력으로 전달하고 함수는 int 유형의 변수를 반환합니다. 이 함수는 매개변수 a와 매개변수 b의 최대 공약수를 찾는 논리를 Exhaustive 방식으로 구현합니다. 매개변수 a와 매개변수 b의 유형은 모두 int 유형이므로 매개변수 a 뒤의 유형을 생략하고 매개변수에 직접 작성합니다. ㄴ.나중에.

main() 함수에서 우리는 gcdNormal 함수를 호출하고 두 개의 매개변수 10과 20을 전달했으며, gcd 변수를 사용하여 gcdNormal 함수에서 반환된 값을 수락하고 마지막으로 Println() 함수를 사용하여 최종 결과를 인쇄했습니다. 결과.

함수 매개변수는 형식 매개변수입니다

Go 언어의 함수 매개변수는 형식 매개변수이므로 함수 매개변수를 수정해도 실제 매개변수에는 영향을 미치지 않습니다.

package main
import (
"fmt"
)
func change(a int) {
a += 100
}
func main() {
//Go语言的函数参数是函数参数,对函数参数的修改不会影响实参
a := 10
change(a)
fmt.Println("a =", a)
}
로그인 후 복사

프로그램 실행 후 콘솔 출력은 다음과 같습니다.

golang 형식 매개변수에 대한 요구사항은 무엇입니까?

함수 make()를 정의하고 int 유형의 매개변수 a를 전달합니다. 함수 본문에서 함수의 매개변수에 100을 추가합니다.

main() 함수에서 이 함수를 호출하고 변수 a를 전달합니다.change() 함수를 실행한 후 변수 a의 값을 다시 인쇄하고 그 후에도 a의 값이 여전히 110이 아닌 10임을 확인합니다. 100을 추가합니다.

Go 언어에서는 함수의 매개변수가 형식 매개변수, 즉 실제 매개변수의 복사본이기 때문에 수정되는 것은 실제 매개변수가 아니므로 a의 값은 변하지 않습니다.

함수 매개변수를 통해 실제 매개변수 수정

Go 언어 함수에서 함수 매개변수를 통해 실제 매개변수를 수정하려면 포인터 유형을 사용해야 합니다

package main
import (
	"fmt"
)
func change(a *int) {
	*a += 100
}
func main() {
	//Go语言的函数要通过函数参数修改实参,必须要使用指针类型
	a := 10
	change(&a)
	fmt.Println("a =", a)
}
로그인 후 복사

golang 형식 매개변수에 대한 요구사항은 무엇입니까?

함수change()를 정의하고 int 포인터 유형을 전달합니다. 함수 본문의 매개변수 a는 함수의 매개변수에 100을 더하는 연산을 구현합니다.

main() 함수에서 이 함수를 호출하고 변수 a의 주소를 전달합니다.change() 함수를 실행한 후 변수 a의 값을 다시 인쇄하여 a의 값이 100만큼 증가한 것을 확인합니다. 110.

여기서 Change() 함수는 a의 주소를 전달합니다. 그런 다음 Change() 함수의 포인터 연산자를 사용하여 a의 주소가 가리키는 변수를 가져온 다음 실제로 값을 수정합니다. 수정된 값은 변수 a입니다.

Go 언어 함수 매개변수 요약

Go 언어의 함수 매개변수는 형식 매개변수입니다. 즉, 값으로 전달하는 경우 전달된 매개변수는 실제 매개변수가 아닌 실제 매개변수의 복사본입니다. 매개변수.

Go 언어에서는 인접한 여러 함수 매개변수의 유형이 동일한 경우 처음 몇 매개변수의 유형을 생략하고 마지막 매개변수의 유형만 작성하면 됩니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 golang 형식 매개변수에 대한 요구사항은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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