package main
import "fmt"
func main() {
var a int = 10
var msg string = "Hello"
a = 20
msg = "Good Morning"
fmt.Println(msg, a)
}
Go언어의 특징점
import "fmt"
: 출력을 위해 불러오는 외부 패키지 fmtfmt.Println(msg,a)
: fmt 패키지 내의 Println 출력함수를 실행
(공백 한칸)으로 구분되어 출력var a int = 10
의 순서대로 변수를 선언해주고, 값은 대입연산자(=)를 통해 대입한다.
type myInt int
: int를 myInt라고 별칭을 지정하는 것
var a int = 10
var a int
: 초기값 생략 가능(정수의 기본값은 0)
var a = 10
: 타입을 생략하려면 초기값 반드시 설정(정수 자동 설정)
a := 10
: var와 타입을 모두 생략할 때. "선언대입문"
연산의 각 항목의 타입이 반드시 같아야 한다.(사이즈가 달라도 안됨)
다를 시 타입변환을 해야 한다.
package main
import "fmt"
func main() {
a := 3 //int
var b float64 = 3.5
var c int = int(b) //타입변환 3.5 -> 3
d := float64(a) * b
var e int64 = 7
f := a * int(e) //int와 int64도 다름
fmt.Println(a,b,c,d,e,f)
//3 3.5 3 10.5 7 21
fmt.Printf("a: %d b: %d, f: %f\n", a, b, f)
var a int
var b int
n, err := fmt.Scanln(&a, &b) //& : 변수의 메모리 주소값
if err != nil {
fmt.Println(err)
} else {
fmt.Println(n, a, b)
}
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
stdin := bufio.NewReader(os.Stdin)
var a int
var b int
n, err := fmt.Scanln(&a, &b) //Scanln의 리턴값이 두가지
if err != nil { //문제가 발생하면
fmt.Println(err)
stdin.ReadString('\n') //개행문자가 나올때까지 읽어라
} else {
fmt.Println(a,b)
}
-> 오류 발생으로 인해 버퍼에 남아있는 글자들을 비우기 위해 모두 읽기