반응형
Golang 프로그래밍 예제 1
글. 수알치 오상문
1. 프로젝트 폴더(예; exam) 만들고,
해당 폴더로 이동한다.
2. 패키지 관리 파일 초기화 (Mod 파일 생성)
go mod init main
[참고] 패키지 추가 다운로드 명령 (아래 예제에선 필요 없음)
go get github.com/example/package
3. 프로그램 작성 main.go
아래 예제 코드를 복사해서 만들어도 된다.
4. 실행
방법 1: 테스트할 때 유용함
go run main.py
방법 2: 실행 파일 main.exe 만들어서 실행하기
1) go build main.go
또는
2) go build -ldflags="-s -w" main.go
디버그 정보 등 제거하면 main.exe 파일 크기 축소됨 (약 60% 크기가 됨)
이렇게 만들어진 main.exe 실행한다.
예제 코드는 다음과 같다.
main.go
package main // 패키지명 설정
import ( // 패키지 임포트
"fmt"
// 더 필요하면 아래에 계속 패키지 지정 (콤마 없음)
)
// 함수 정의 시작 구조 : func 함수명 (전달인수 목록) 반환형 {
func message(msg string, ret int) int { // '{' 위치를 아래 줄로 내리면 에러!
println(msg) // 문장 뒤에 세미콜론 사용 안함
return ret
}
func calc(v1 int, v2 int) (int, int, int, int) {
r1 := v1 + v2
r2 := v1 - v2
r3 := 0
if v2 != 0 { // golang은 3항 조건연산자 없음
r3 = v1 / v2
}
r4 := v1 * v2 // 필요한 곳에서 변수 정의하고 사용
return r1, r2, r3, r4
}
func main() { // main 함수는 No argument, no return value
// 디버깅이나 간단한 출력에 println 사용
var hello string = "Hello, world!" // hello := "Hello, world!"처럼 정의 가능
println(hello) // 변수 만들고 사용 안하면 에러!
// fmt.Println()과 fmt.Printf()을 사용하여 형식 출력
var name1 = "홍길동" // name1 := "홍길동"
var age1 = 500 // age1 := 500
fmt.Printf("이름은 %s 나이는 %d\n", name1, age1)
name := "홍길동" // 대입 값 형에 의해 자동으로 변수 형 지정됨
age := 500
fmt.Printf("이름은 %s 나이는 %d\n", name, age) // C 언어 printf 함수와 비슷
fmt.Println("이름은", name, "나이는", age) // 파이썬 print 함수와 비슷
ret := message("Hello, world!", 100) // 사용자 함수 호출
println("return value:", ret)
name2 := name
println(name2)
println(calc(8, 2))
}
[실행 결과]
Hello, world!
이름은 홍길동 나이는 500
이름은 홍길동 나이는 500
이름은 홍길동 나이는 500
Hello, world!
return value: 100
홍길동
11 5 2 24
반응형
'Go (Golang)' 카테고리의 다른 글
Go 1.21, slice 기능 지원 (1) | 2023.11.12 |
---|---|
Golang Korea 개발자 그룹 링크 (0) | 2023.11.12 |
CentOS에 Go 설치하기 (0) | 2023.10.30 |
당근마켓 개발팀 Go 언어 도입 이야기 (0) | 2023.10.29 |
Go 언어 프레임워크 Top 5 (0) | 2023.10.24 |