[go] 형식화된 입출력과 에러 처리
  1. 형식화된 입출력
  2. 에러 처리

형식화된 입출력

형식화된 입출력은 데이터를 특정 형식에 맞추어 입출력하는 것을 말합니다. Go에서는 fmt 패키지를 사용하여 형식화된 입출력을 처리합니다.

형식화된 출력

fmt.Printf 함수는 지정된 형식에 맞게 데이터를 출력하는 데 사용됩니다. 예를 들어,

package main

import "fmt"

func main() {
    name := "Alice"
    age := 30
    fmt.Printf("이름: %s, 나이: %d\n", name, age)
}

위의 예제는 name 변수의 값을 문자열로, age 변수의 값을 정수로 출력합니다. %s%d는 각각 문자열과 정수를 나타내며, 출력 형식에 맞게 데이터를 전달합니다.

형식화된 입력

fmt.Scanf 함수는 지정된 형식에 맞게 입력을 받는 데 사용됩니다. 예를 들어,

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Print("이름: ")
    fmt.Scanf("%s", &name)
    fmt.Print("나이: ")
    fmt.Scanf("%d", &age)
}

위의 예제는 사용자로부터 이름과 나이를 입력 받아 nameage 변수에 저장합니다.

에러 처리

Go에서는 에러 처리를 위해 error 타입을 사용합니다. 함수는 보통 error 값을 반환하고, 호출자는 이를 검사하여 에러 상황을 처리합니다.

에러 반환하기

함수에서 에러를 반환하려면, error를 리턴 타입으로 지정하면 됩니다. 예를 들어,

package main

import (
    "errors"
    "fmt"
)

func divide(x, y float64) (float64, error) {
    if y == 0 {
        return 0, errors.New("나누는 수가 0입니다")
    }
    return x / y, nil
}

func main() {
    result, err := divide(6, 0)
    if err != nil {
        fmt.Println("에러 발생:", err)
    } else {
        fmt.Println("결과:", result)
    }
}

위의 예제는 divide 함수에서 두 수를 나누는데, 만약 나누는 수가 0이면 에러를 반환하고, 아니면 나눈 결과를 반환합니다.

에러 처리

에러를 처리할 때는 보통 if err != nil을 사용하여 에러를 확인하고 처리합니다.


위의 내용은 Go에서의 형식화된 입출력과 에러 처리에 대한 간단한 소개였습니다. 더 자세한 내용은 공식 Go 문서를 참고하시기 바랍니다.