18. for i <= 10 {
i = i + 1
}
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
for {
}
반복문
19. for index,element := range someSlice {
fmt.Println(index, element)
}
for _,element := range someSlice {
sum += element
}
반복문
20. if x % 3 == 0 {
fmt.Println(“나머지는 0”)
} else if x % 3 == 1 {
fmt.Println(“나머지는 1”)
} else {
fmt.Println(“나머지는 2”)
}
조건문 - if
21. switch i {
case 0: fmt.Println("영")
case 1: fmt.Println("일")
case 2: fmt.Println("이")
case 3: fmt.Println("삼")
case 4: fmt.Println("사")
case 5: fmt.Println("오")
default: fmt.Println("알 수 없는 숫자")
}
조건문 - switch
23. 길이가 고정된, 번호가 매겨진 단일 타입 원소의
나열
배열 전달 시 값이 복사된다
var array [5]int
array[1] = 4
배열
24. 배열의 일부
array, length, capacity 속성을 가지고 있다
참조 타입
var slice []flot64 = []flot64{0.0, 1.0, 0.0}
var slice []float64 = make([]float64, 5)
var slice []float64 = make([]float64, 5, 10)
슬라이스
32. func add(x int, y int) int {
return x + y
}
func add(x, y int) int {
return x + y
}
func add(x, y int) (sum int) {
sum = x + y
return
}
함수
33. 마지막 매개변수에 사용가능
func add(args ...int) int {
total := 0
for _, v := range args {
total += v
}
return total
}
func main() {
fmt.Println(add(1,2,3))
}
가변함수
34. func main() {
add := func(x, y int) int {
return x + y
}
fmt.Println(add(1,1))
}
함수 타입
35. func main() {
x := 0
increment := func() int {
x++
return x
}
fmt.Println(increment()) -> 1
fmt.Println(increment()) -> 2
}
Closures
41. type Vertex struct {
X int
Y int
}
var vertex := Vertex{1, 2}
var vertex Vertex
vertex.x = 1
vertex.y = 2
구조체
42. type Circle struct {
x float64
y float64
r float64
}
func (c *Circle) area() float64 {
return math.Pi * c.r*c.r
}
fmt.Println(c.area())
구조체 - 메서드
43. type Person struct {
Name string
}
func (p *Person) Talk() {
fmt.Println("안녕, 내 이름은 ", p.Name, "야")
}
type Android struct {
Person Person
Model string
}
구조체 – 포함 타입