Go 언어에서는 함수를 정의한 후 "함수명()"을 통해 함수를 호출할 수 있으며, 구문은 "반환값 변수 목록 = 함수명(매개변수 목록)"입니다. "()"에 여러 매개변수가 포함된 경우 매개변수 변수는 쉼표로 구분되며 "반환 값 변수 목록"에서 세미콜론으로 끝날 필요가 없으며 여러 반환 값은 쉼표로 구분됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
함수는 코드 실행의 논리적 구조를 구성합니다. Go 언어에서 함수의 기본 구성 요소는 키워드 func, 함수 이름, 매개변수 목록, 반환 값, 함수 본문 및 반환 문입니다. 코드.
Go 언어는 컴파일된 언어이기 때문에 함수를 작성하는 순서는 상관이 없습니다. 가독성을 고려하여 파일 앞에 main() 함수를 작성하는 것이 가장 좋으며, 그 외의 함수는 그 안에 작성하는 것이 좋습니다. 특정 논리적 순서(예: 함수가 호출되는 순서)
여러 함수를 작성하는 주된 목적은 많은 코드 줄이 필요한 복잡한 문제를 일련의 간단한 작업으로 분해하여 해결하는 것입니다. 또한 동일한 작업(함수)을 여러 번 호출할 수 있으므로 코드 재사용에 도움이 됩니다(사실 무엇보다 좋은 프로그램은 DRY 원칙, 즉 특정 작업을 수행하는 코드가 프로그램에서 한 번만 나타날 수 있다는 것을 의미하는 Don't Repeat Yourself(Don't Repeat Yourself)에 크게 주목합니다.
코드 블록의 마지막 줄에 도달하거나 }
return 문 앞에 도달하면 함수가 종료됩니다. return 문에는 0개 이상의 매개 변수가 있을 수 있으며 이러한 매개 변수는 호출자에 대한 반환 값으로 사용됩니다. 문은 for의 무한 루프를 종료하거나 고루틴을 종료하는 데에도 사용할 수 있습니다.
Go 언어에는 세 가지 유형의 함수가 있습니다.
함수 선언에는 함수 이름, 공식 포함 매개변수 목록, 반환값 목록(생략 가능), 함수 본문.
func 函数名(形式参数列表)(返回值列表){ 函数体 }
정식 매개변수 목록은 함수의 매개변수 이름과 매개변수 유형을 설명하며, 해당 매개변수는 매개변수 호출자가 제공하는 값입니다. 함수가 이름이 지정되지 않은 변수를 반환하는 경우 또는 반환 값이 없으며 반환 값 목록에서 괄호를 생략할 수 있습니다.
함수를 호출하면 현재 코드가 호출된 함수로 점프하여 호출할 수 있으며 호출 전 함수의 지역 변수는 함수 이후에도 손실되지 않습니다. 실행이 끝나면 호출 함수의 다음 줄에서 코드 실행이 다시 시작되며 이전 지역 변수에도 계속 액세스할 수 있습니다.
함수 내의 지역 변수는 함수 본문에서만 사용할 수 있습니다. 함수 호출이 완료된 후에는 해당 지역 변수가 해제되고 유효하지 않습니다.
Go 언어의 함수 호출 형식은 다음과 같습니다.
返回值变量列表 := 函数名(参数列表)
다음은 각 부분에 대한 설명입니다.
예를 들어 덧셈 함수 호출 스타일은 다음과 같습니다.
result := add(1,1)
Go 언어는 여러 반환 값을 지원하므로 함수 실행 후 여러 반환 매개 변수를 쉽게 얻을 수 있습니다. Go 언어는 다중을 사용하는 경우가 많습니다. 반환 값의 마지막 반환 매개 변수는 함수 실행 중에 발생할 수 있는 오류를 반환합니다. 샘플 코드는 다음과 같습니다.
conn, err := connectToNetwork()
在这段代码中,connectToNetwork 返回两个参数,conn 表示连接对象,err 返回错误信息。
Go语言既支持安全指针,也支持多返回值,因此在使用函数进行逻辑编写时更为方便。
如果返回值是同一种类型,则用括号将多个返回值类型括起来,用逗号分隔每个返回值的类型。
使用 return 语句返回时,值列表的顺序需要与函数声明的返回值类型一致,示例代码如下:
func typedTwoValues() (int, int) { return 1, 2 } func main() { a, b := typedTwoValues() fmt.Println(a, b) }
代码输出结果:
1 2
纯类型的返回值对于代码可读性不是很友好,特别是在同类型的返回值出现时,无法区分每个返回参数的意义。
Go语言支持对返回值进行命名,这样返回值就和参数一样拥有参数变量名和类型。
命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。
下面代码中的函数拥有两个整型返回值,函数声明时将返回值命名为 a 和 b,因此可以在函数体中直接对函数返回值进行赋值,在命名的返回值方式的函数体中,在函数结束前需要显式地使用 return 语句进行返回,代码如下:
func namedRetValues() (a, b int) { a = 1 b = 2 return }
代码说明如下:
func namedRetValues() (a, b int) { a = 1 return a, 2 }
同一种类型返回值和命名返回值两种形式只能二选一,混用时将会发生编译错误,例如下面的代码:
func namedRetValues() (a, b int, int)
编译报错提示:
mixed named and unnamed function parameters
意思是:在函数参数中混合使用了命名和非命名参数。
【相关推荐:Go视频教程】
위 내용은 Go 언어에서 함수를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!