본문 바로가기

기타언어,오픈소스

Go basic - Function (함수)

안녕하세요.

이번에는 Go 프로그래밍 언어에서 함수는 어떻게 사용하는지 정리해보도록 하겠습니다. 


Go 홈페이지에서 제공하는 함수 관련 설명은 아래 주소에서 확인해주세요.


Go Homepage - Function : http://go-tour-kr.appspot.com/#7


앞선 포스팅에서 외부 패키지를 불러서 사용할 때, 외부 패키지에 있는 함수를 부르기 위해서는

패키지에 함수 이름이 대문자로 시작해야 한다는 것, 부를 때도 대문자로 시작하는 함수를 불러야 한다는 점이 있었는데요.


이번에는 하나의 패키지안에서 함수를 어떻게 부르는지가 되겠네요.

내부에 있는 것을 부를 때에는 함수이름이 대문자로 시작하지 않아도 되는 것 같아요.


위 Function 예제와 비슷하게 한 번 해보면, 

String 값을 2개 넘겨서, 두개를 결합해서 출력하도록 하는 소스를 작성해보죠.


file : ./stringCombine/stringCombine.go


  1 package stringCombine

  2 

  3 import (

  4   "fmt"

  5 )

  6 

  7 func combine(s1, s2 string) string {   //변수 이름이 먼저 나오고, 변수의 타입이 뒤에 나옵니다. 함수 이름 뒤에는 리턴 타입이 나오구요.

  8        return s1 + " " + s2

  9 }

 10 

 11 func Test(){

 12      var cs = combine("welcome", "Go programming")

 13      fmt.Println(cs)

 14 }


일단 stringCombine이라는 패키지를 만들었구요.
combine 이라는 함수를 작성했습니다. s1, s2를 입력받아서, 결합해서 돌려주는 함수이구요.

테스트를 위해서 지난 번에 사용했던 main 패키지를 아래와 같이 변경했습니다.

file : ./main.go

  1 package main
  2 
  3 import (
  4   "fmt"
  5   "math"
  6   "./testPackage"
  7   "./stringCombine" 
  8 )
  9 
 10 func main(){
 11   fmt.Println("Happy", math.Pi, "Day")
 12      
 13   testPackage.Test()
 14  
 15   stringCombine.Test()
 16 }


7번 줄하고, 15번 줄을 추가한 것이구요.


실행해보면 go run main.go 


Happy 3.141592653589793 Day

Hello package example

welcome Go programming    ---> 요 줄이 combine 함수에 의해서 리턴된 스트링 인거죠.


main.go에서 지난번 예제를 포함하고 있어서 1~2 줄이 나오는 것이구요.

welcome Go programming 이라는 문자열이 잘 출력되는 것을 알 수 있습니다.


즉 내부에 있는 함수를 사용할 때는 소문자로 시작해도 된다구요.

패키지에 있는 함수를 외부에서도 호출하게 만들고 싶다고 하시면, 대문자로 함수 이름이 시작해야 한다는 것이 기억해야 하는 사항이네요.



위 소스코드는 git에 올려두었구요. git도 연습해야 하거든요 :)