package main
import "fmt" // 모듈화된 라이브러리 참조
func main() { // 실행 진입 구간 main 함수 선언
fmt.Println("Hello world!!")
}
import "fmt"
import (
"fmt"
"os"
)
-alias 선언
import (
"fmt"
testmodule "jerry/lib"
)
const a string = "Test1"
const b int32 = 10 * 10
// const d =getHeight() // 함수 할당 불가
const a,b int = 10, 99
const c, d, e = true, 0.84, "test"
const (
x, y int16 = 50, 90
i, k = "Data", 7776
)
var c, d, e int
var f, g, h int = 1, 2, 3
var i float32 = 11.4
var j string = "Hi! Golang!"
var k = 4.74 // 선언 동시 초기화
const (
Jan = 1 // 1
Feb = 2 // 2
Mar = 3 // 3
)
const (
Jan = 1 // 1
Feb = 2 // 2
Mar // 2
)
const (
a = iota + 10 //10
b // 11
c = iota * 2 // 22
d //23
)
const (
_ = iota // 밑줄에 사용하여 값 스킵
A // 1
_
C // 3
_
B // 5
)
var t=10 // O
a=10 // X
b:=10 // O
func CheckReturnShortValue() int {
shortVal := 350
return shortVal
}
for i := 0; i < 5; i++ {
fmt.Println(i)
}
loc := []string{"Seoul", "Busan", "Incheon"}
for index, name := range loc {
fmt.Println(index, name)
}
Loop1:
for i := 0; i < 5; i++ {
for j := 0; j < 5; j++ {
if i == 2 && j == 4 {
break Loop1
}
fmt.Println(i, j)
}
}
Loop2: //loop 문 안에는 반드시 for문이 와야함
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 2 {
continue Loop2
}
fmt.Println(i, j)
}
}
sum2, i := 0, 0
for i <= 100 {
// sum2+=i++ // 후취연산 반환값이 없기 때문에
sum2 += i // 별도로 선언
i++
}
if a >= 10 {
fmt.Println("10 이상")
} else {
fmt.Println("10 미만")
}
// 예제1. switch문 바깥에서 선언한 변수에 대해 체크. switch문 표현식에 조건 생략 가능
a := -7
switch {
case a < 0:
fmt.Println(a, "는 음수")
case a == 0:
fmt.Println(a, "는 0")
case a > 0:
fmt.Println(a, "는 양수")
}
// 예제2 : 스위치문 조건절에서 case에서 체크할 대상 변수 사용
switch c := "go"; c + "lang" {
case "golang":
fmt.Println("Golang")
case "java":
fmt.Println("java")
default:
fmt.Println("none")
}
// 예제3
switch i, j := rand.Intn(100), 30; {
case i < j:
fmt.Println("i는 j보다 작다")
case i == j:
fmt.Println("i는 j보다 같다")
case i > j:
fmt.Println("i는 j보다 크다")
}
// 예제4
a := 30 / 15
switch a {
case 2, 4, 6: // case 조건절에 여러개 값 선언 가능
fmt.Println(" a는 짝수")
case 1, 3, 5:
fmt.Println(" a는 홀수")
}
// 예제 5 : fallthrough 예약어 => 조건에 맞는 문장에 해당 예약어가 있다면 그 이후에는 조건에 맞지 않더라도 실행됨
switch e := "go"; e {
case "java":
fmt.Println("java다")
fallthrough
case "go":
fmt.Println("go")
fallthrough
case "ruby":
fmt.Println("ruby")
}
[학습 자료] 인프런 - 쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
[공식사이트] https://golang.org/tutorial