이번 편의 목표: 실행할 때 제목과 연체 일수를 인자로 받아 연체료를 출력합니다.

os.Args는 프로그램 인자의 슬라이스입니다. 0번은 프로그램 이름이고, 그 다음부터가 사용자가 넘긴 값입니다. go run . 생각나무 3 에서 제목은 Args[1], 일수는 Args[2]입니다.

Go
package main

import (
	"fmt"
	"os"
	"strconv"
)

func main() {
	if len(os.Args) < 3 {
		fmt.Println("사용법: go run . 제목 연체일수")
		return
	}
	title := os.Args[1]
	days, err := strconv.Atoi(os.Args[2])
	if err != nil || days < 0 {
		fmt.Println("연체일수는 0 이상의 정수입니다")
		return
	}
	fee := 0
	if days > 0 {
		fee = days * 100
	}
	fmt.Printf("%s %d일 %d원\n", title, days, fee)
}

go run . 생각나무 3

출력은 생각나무 3일 300원입니다. 인자가 부족하면 사용법만 출력하고 계산하지 않습니다. 일수가 정수가 아니거나 음수이면 연체일수는 0 이상의 정수입니다. 를 출력합니다. 0일은 정상으로 보고 0원입니다.

직접 해 보기

go run . 도서관 2 를 실행해 도서관 2일 200원이 나오는지 확인하세요.

해설

하루 100원이고 2일이므로 200원입니다. 제목은 Args[1] 그대로 출력됩니다.