함수에서 여러 값을 반환하고 Golang 또는 Go의 변수에 할당하는 방법은 무엇입니까?

12651 단어 go
Originally posted here!

Golang 또는 Go의 함수에서 여러 값을 반환하려면 return 키워드와 반환해야 하는 값을 , 기호(쉼표)로 구분하여 사용할 수 있습니다. 마지막으로 함수 매개변수 대괄호 뒤에 있는 대괄호 안에 반환 값의 유형을 선언해야 합니다.

TL; DR




package main

import (
    "fmt"
    "strings"
)

// getFirstAndLastName accepts a full name string
// and returns the first name and last name
// as the first and second return values
func getFirstAndLastName(fullname string) (string, string) {
    // splitting the fullname single string by whitespace
    names := strings.Split(fullname, " ")

    // return the `names` array first element as the first return value
    // and the second element as the second return value
    return names[0], names[1]
}

func main() {
    // call the `getFirstAndLastName` function
    // and assign the first return value to the `firstName` variable
    // and the second return value to the `lastName` variable
    // using the `:=` (assignment) operator
    firstName, lastName := getFirstAndLastName("John Doe")

    // log it to the console
    fmt.Println(firstName, lastName) // John Doe
}


예를 들어 사용자의 전체 이름을 단일 문자열로 받아들이고 이름과 성을 별도의 반환 값으로 반환하는 함수가 있다고 가정해 보겠습니다.

이를 위해 먼저 다음과 같이 getFirstAndLastname라는 함수를 생성해 보겠습니다.

package main

func getFirstAndLastName(fullname string) (string, string) {
    // cool code here
}

func main(){

}


참고: Go의 기능에 대한 자세한 내용은 블로그How to create a function in Golang or Go?를 참조하십시오.

이제 함수 본문 내에서 이름과 성을 전체 이름에서 분리하는 논리를 작성할 수 있습니다.

논리는 전체 이름 문자열을 공백으로 나누는 것입니다. 이를 위해 Split() 표준 패키지의 strings 메서드를 사용할 수 있습니다.

다음과 같이 할 수 있습니다.

package main

// getFirstAndLastName accepts a full name string
// and returns the first name and last name
// as the first and second return values
func getFirstAndLastName(fullname string) (string, string) {
    // splitting the fullname single string by whitespace
    names := strings.Split(fullname, " ")
}

func main(){

}


함수 본문에서 코드를 볼 수 있듯이 공백을 만날 때마다 전체 이름 단일 문자열을 분할합니다.
names 변수는 분할 문자열을 포함하는 배열이 될 것이므로 단순성을 위해 names 배열의 첫 번째 값이 이름이고 두 번째 값이 성이라고 가정할 수 있습니다.

이제 names 배열의 첫 번째 요소를 첫 번째 반환 값으로 반환하고 두 번째 요소를 , 기호(쉼표)로 구분하여 두 번째 반환 값으로 반환해 보겠습니다.

다음과 같이 할 수 있습니다.

package main

// getFirstAndLastName accepts a full name string
// and returns the first name and last name
// as the first and second return values
func getFirstAndLastName(fullname string) (string, string) {
    // splitting the fullname single string by whitespace
    names := strings.Split(fullname, " ")

    // return the `names` array first element as the first return value
    // and the second element as the second return value
    return names[0], names[1]
}

func main(){

}


이제 main 함수에서 함수를 호출하고 getFirstAndLastName 함수에서 반환 값을 가져오려면 firstName 기호로 구분된 lastName,라는 2개의 변수를 할당한 다음 :=를 사용할 수 있습니다. ) 연산자는 각각 함수의 반환 값을 할당합니다.

다음과 같이 할 수 있습니다.

package main

// getFirstAndLastName accepts a full name string
// and returns the first name and last name
// as the first and second return values
func getFirstAndLastName(fullname string) (string, string) {
    // splitting the fullname single string by whitespace
    names := strings.Split(fullname, " ")

    // return the `names` array first element as the first return value
    // and the second element as the second return value
    return names[0], names[1]
}

func main(){
    // call the `getFirstAndLastName` function
    // and assign the first return value to the `firstName` variable
    // and the second return value to the `lastName` variable
    // using the `:=` (assignment) operator
    firstName, lastName := getFirstAndLastName("John Doe")
}


마지막으로 firstName 표준 패키지의 lastName 메서드를 사용하여 콘솔에 Println()fmt 변수를 다음과 같이 콘솔에 적용해 보겠습니다.

package main

import (
    "fmt"
    "strings"
)

// getFirstAndLastName accepts a full name string
// and returns the first name and last name
// as the first and second return values
func getFirstAndLastName(fullname string) (string, string) {
    // splitting the fullname single string by whitespace
    names := strings.Split(fullname, " ")

    // return the `names` array first element as the first return value
    // and the second element as the second return value
    return names[0], names[1]
}

func main() {
    // call the `getFirstAndLastName` function
    // and assign the first return value to the `firstName` variable
    // and the second return value to the `lastName` variable
    // using the `:=` (assignment) operator
    firstName, lastName := getFirstAndLastName("John Doe")

    // log it to the console
    fmt.Println(firstName, lastName) // John Doe
}


여러 값을 성공적으로 반환하고 Go에서 2개의 변수에 할당했습니다. 예이 🥳!

The Go Playground에 있는 위의 코드를 참조하십시오.

그게 다야 😃!

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기