if 조건문 안에서 함수 사용하기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

 

이번에는 조건문 안에서 함수를 사용하는 방법에 대해 알아보겠습니다. 먼저 다음과 같이 hello.txt 파일의 내용을 읽어 화면에 출력하는 코드가 있습니다.

 

hello.txt

Hello, world!
var b []byte
var err error

b, err = ioutil.ReadFile("./hello.txt")

if err == nil {
	fmt.Printf("%s", b)
}

실행 결과

Hello, world!

이 코드를 다음과 같이 if 조건문 안에서 함수를 실행한 뒤 조건을 판단하는 방식으로 바꿀 수 있습니다.

if b, err := ioutil.ReadFile("./hello.txt"); err == nil {
	fmt.Printf("%s", b)
}

실행 결과

Hello, world!

if 조건문 안에서 함수를 실행하고 ; (세미콜론)으로 구분한 뒤 조건식을 작성합니다. ioutil.ReadFile 함수로 파일을 열면 b에는 파일의 내용이 들어가고, err에는 에러 값이 들어갑니다. 이때 에러가 없으면 fmt.Printf 함수를 실행하여 파일 내용을 출력합니다. 이렇게 if 안에서 함수를 실행하고 에러 값을 확인하면 코드양을 줄일 수 있습니다.

if 조건문 안에서 변수를 생성했을 때 변수는 if 조건식이 참일 때 중괄호 블록뿐만 아니라 else, else if 중괄호 블록에서도 사용할 수 있습니다. 하지만 if 조건문 바깥에서는 변수를 사용할 수 없습니다.

if b, err := ioutil.ReadFile("./hello.txt"); err == nil {
	fmt.Printf("%s", b) // 변수 b를 사용할 수 있음
} else {
	fmt.Println(err) // 변수 err을 사용할 수 있음
}

fmt.Println(b)   // 변수 b를 사용할 수 없음. 컴파일 에러
fmt.Println(err) // 변수 err을 사용할 수 없음. 컴파일 에러

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

01 June 2015