'Go' 카테고리의 글 목록 (2 Page) :: IdeaFusion
반응형

이 내용은 https://go-tour-kr.appspot.com/ 를 참고합니다.


이 내용은 Windows 환경에서 Go를 사용하며 IDE는 Visual Studio Code 입니다.


이름이 정해진 결과 (Named results)


함수는 매개변수를 취합니다. Go에서 함수는 여러 개의 결과를 반환할 수 있습니다. 반환 값에 이름을 부여하면 변수처럼 사용할 수도 있습니다.

결과에 이름을 붙히면, 반환 값을 지정하지 않은 return 문장으로 결과의 현재 값을 알아서 반환합니다.

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {
    fmt.Println(split(17))
}

split 함수 내에서 x, y 값이 세팅되어 반환됩니다.

x값을 계산하면 7.555555555555556의 값이 나오지만, int type의 정수이므로 내림 처리되어 7이됩니다.

출력값 7 10


y값을 대입하지 않고 작성해보겠습니다.

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    return
}

func main() {
    fmt.Println(split(17))
}

출력값 7 0

함수 내에서 값을 대입하지 않았을때 기본값을 출력하되, 오류가 나지 않은점을 확인하였습니다.


이름이 정해진 결과 (Named results)를 학습하였습니다.

반응형
반응형

이 내용은 https://go-tour-kr.appspot.com/ 를 참고합니다.


이 내용은 Windows 환경에서 Go를 사용하며 IDE는 Visual Studio Code 입니다.


여러 개의 결과 (Multiple results)


하나의 함수는 여러 개의 결과를 반환할 수 있습니다.

예제 코드에서의 함수는 두개의 문자열을 반환합니다.

package main

import "fmt"

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}

변수 a, b는 짧은선언(:=)을 사용하여 반환되는 값의 type 지정을 하지 않았습니다.

swap의 반환값을 받은 변수 a, b가 출력되었습니다.


예제에서는 반환값이 둘다 string type으로 되어있는데, 서로 다른 타입도 가능합니다.

package main

import "fmt"

func swap(x int, y string) (string, int) {
    return y, x
}

func main() {
    a, b := swap(2019, "years")
    fmt.Println(a, b)
}

swap 되어 years 2019 가 출력되는게 확인되었습니다.


여러 개의 결과 (Multiple results)를 학습하였습니다.

반응형
반응형

[A Tour of Go 따라하기] 함수


이 내용은 https://go-tour-kr.appspot.com/ 를 참고합니다.


이 내용은 Windows 환경에서 Go를 사용하며 IDE는 Visual Studio Code 입니다.


함수


함수는 매개변수(인자)를 가질 수 있습니다.

예를 들어 add 라는 함수는 두개의 int 타입 매개변수를 받습니다.

C, C++, Java 언어와 다르게 매개변수의 타입은 변수명 뒤에 명시합니다.

(타입을 왜 변수명 뒤에 명시하는지에 대한 자세한 내용은 Go's declaration syntax를 참고하시기 바랍니다. 간단히 설명하면 코드를 왼쪽에서 오른쪽으로 읽을 때 자연스럽게 읽기 위해서 입니다.)

 
package main

import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}

add 함수의 매개변수 x, y는 각각 int형으로 C, C++, C#, Java 언어와 다르게 타입이 뒤에 명시되었습니다.

A Tour of Go에서 명시하지 않은 부분이 있는데 add 함수가 반환되는 값에대한 내용이 없지만, 매개변수 이후에 int로

반환 타입을 정의하는것을 유추할 수 있습니다.


두 개 이상의 매개변수가 같은 타입(type)일 때, 같은 타입을 취하는 마지막 매개변수에만 타입을 명시하고 나머지는 생략할 수 있습니다.

 
package main

import "fmt"

func add(x, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}

매개변수 x는 y와 같은 타입일경우 타입을 지정하지 않아도 되는 내용입니다.

처음에는 익숙하지 않지만 적응이되면 작성하는 소스도 간결해지고 괜찮은 것 같습니다.


Go 언어의 함수를 학습하였습니다.

반응형

+ Recent posts