본문 바로가기

Programming Language/Go

[Go] Go언어 튜토리얼1_상수와 변수

반응형

아래 포스팅은 노마트코더의 Go언어 강의를

바탕으로 작성 된 튜토리얼 입니다

 

 

 

 

Export / Private Function 사용

- 현재 폴더 디렉터리 구조는 /learngo 아래에 main.go 파일이 생성된 상태

- export func 테스트를 위해 /learngo/something 폴더 생성

- 그 아래 /learngo/something/something.go 파일 작성

 

현재 디렉토리 구조

 

- something.go 작성

package something

import "fmt"

//소문자로 시작하는 function은 export 불가능
//private function이다.
func sayBye() {
	fmt.Println("Bye")
}

//SayHello func
//function을 export하고 싶을 떄는 function 이름을 대문자로 시작해야함.
func SayHello() {
	fmt.Println("Hello")
}

>> 외부에서 사용하기 위해서는 func의 이름이 대문자로 시작

>> 소문자로 시작하면 Private func가 된다.

 

- main.go에서 사용

package main

import (
	"fmt"

	"/learngo/something"
)


func main() {
    fmt.Println("Hello World!")
    something.SayHello()
}

>> 대문자로 시작하는 func만 export가 되어 main.go에서 사용 가능

>> 소문자로 시작하는 func를 사용하려고 시도 시 아래와 같은 에러 발생

 

대문자로 시작하는 func만 export 가능

 

 

 

Constants

- main.go에 constants에 관한 func 작성

package main

import "fmt"

//Constants :변경할 수 없다
func Constants() {
    const name string = "soyou"
    fmt.Println(name)
}

func main() {
    fmt.Println("Hello World")
    Constants()
}

>> const라고 앞에 선언한 뒤, 변수명 그리고 타입을 작성해서 사용한다.

>> 한번 선언한 변수는 재 할당 불가능하다.

 

 

Variables

- main.go에 variables에 관한 func 작성

package main

import "fmt"

// Variables : 변경가능함
func Variables() {
	var varName string = "var_soyou"
	varName = "var_change"
	fmt.Println(varName)

	// 변수 선언 시 축약 코드 작성 법 :
	// 축약형 코드는 오로지 func안에서만 가능하고, 변수에만 적용 가능함
	newVar := "new_name"
	newVar = "new_change"
	fmt.Println(newVar)
}

func main() {
	fmt.Println("Hello World")
    Variables()
}

 

>> var라고 앞에 선언 한 뒤, 변수명 그리고 타입을 작성해서 사용

>> 한번 선언한 var에 값을 재 할당해도 된다.

>> var 선언 시 축약형으로 사용이 가능함. go언어가 알아서 var의 타입을 확인한다.

>> 축약형 코드는 오로지 func안에서만 사용 가능

>> const는 축약형 사용 불가능, var만 사용 가능

 

 

Type

- string, bool, numeric, array, slices, etc

- Go언어에는 다양한 타입의 변수들이 존재 함.

- 함수 생성 시 파라미터와 리턴하는 값에 대한 타입을 명시해야함

package main

import "fmt"

func multiply(a int, b int) int {
    return a * b
}

func main() {
    fmt.Println(multiply(2, 2))
}

>> 위에서 여러개의 변수 타입을 지정할 때 간단하게 하는 방법 

>> (a int, b int) = (a, b int) 오른쪽과 같이 작성하면 됨

반응형