ruhz 2021. 11. 30. 11:32
 

쉽고 λΉ λ₯Έ Go μ‹œμž‘ν•˜κΈ° – λ…Έλ§ˆλ“œ 코더 Nomad Coders

Learn Go Fast

nomadcoders.co

μž‘μ—… ν™˜κ²½μ€ C:\Go에 bin src pkg 폴더λ₯Ό μ‚¬μš©ν•œλ‹€(ꢌμž₯).

  • GoλŠ” ν•¨μˆ˜μ˜ 첫 κΈ€μžκ°€ λŒ€λ¬Έμž/μ†Œλ¬Έμž μΈμ§€λ‘œ public/private을 κ΅¬λΆ„ν•œλ‹€.
  • νƒ€μž… 언어이기 λ•Œλ¬Έμ—, 기본적으둜 νƒ€μž…μ„ λͺ…μ‹œν•΄μ€˜μ•Ό ν•˜μ§€λ§Œ, ν•¨μˆ˜ μ•ˆμ—μ„œ ':=' 기호λ₯Ό μ‚¬μš©ν•˜λ©΄ μ•Œμ•„μ„œ μ„€μ •ν•œλ‹€.
  • ν•˜λ‚˜μ˜ ν•¨μˆ˜κ°€ λ‹€μ–‘ν•œ μžλ£Œν˜•μ„ λ°˜ν™˜ν•œλ‹€.
  • μ„ μ–Έν•œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œ 적이 μ—†λ‹€λ©΄ μ—λŸ¬λ₯Ό 좜λ ₯ν•œλ‹€.
  • ν•¨μˆ˜μ—μ„œ "naked" return(ν•¨μˆ˜ μ„ μ–Έ μ‹œ λ°˜ν™˜ν•  νƒ€μž…κ³Ό ν•¨κ»˜ λ³€μˆ˜ λͺ…을 같이 μ„ μ–Έ), defer(ν•¨μˆ˜ μ’…λ£Œ ν›„ μ‹€ν–‰λ˜λŠ” μ½”λ“œ) λ“±μ˜ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ‹€.

반볡문

nubmers := [5]int{1, 2, 3, 4, 5}
// 1. 인자 ν•˜λ‚˜μΈ 경우 인덱슀λ₯Ό λ°˜ν™˜
for index := range numbers {
	fmt.Println(index)
}
// 2. 인자 λ‘κ°œμΈ 경우 μΈλ±μŠ€μ™€ 값을 λ°˜ν™˜
for index, number := numbers {
	fmt.Println(index, number)
}
// 3. κ°’λ§Œ λ°˜ν™˜ν•˜λŠ” 경우
for _, nubmer := numbers {
	fmt.Println(number)
}
// 4. λ‹€λ₯Έ ν˜•νƒœμ˜ 반볡문
for i := 0; i < len(numbers); i++ {
	fmt.Println(numbers[i])
}

쑰건문

numbers := [5]int{1, 2, 3, 4, 5}
fmt.Println(numbers)
for _, number := range numbers {
   	// 1. κΈ°λ³Έ 쑰건문 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™λ‹€.
	if number%2 == 0 {
		fmt.Println(number)
	}
       	// 2. GoλŠ” if 문에 λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄ μ‚¬μš©ν•  수 μžˆλ‹€.
       	if doubledNumber := number * 2; doubledNumber >= 10 {
		fmt.Println(number)
	}
       
       	// 3. Switch λ¬Έ μ—­μ‹œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄ μ‚¬μš©ν•  수 μžˆλ‹€.
       	switch oe := number % 2; oe {
	case 0:
		fmt.Println("Even!")
		break
	case 1:
		fmt.Println("Odd!")
		break
	}
       	// 4. Switch 문은 λ‹€μŒκ³Ό 같이 ν™œμš©λ„ κ°€λŠ₯ν•˜λ‹€.
       	switch {
	case number%2 == 0:
		fmt.Println("Even!")
		break
	case number%2 == 1:
		fmt.Println("Odd!")
		break
	}     
}

ν¬μΈν„°λŠ” C와 λ˜‘κ°™λ‹€. &으둜 μ£Όμ†Œκ°’, *둜 μ£Όμ†Œκ°’μ΄ κ°€λ¦¬ν‚€λŠ” 곳에 μ ‘κ·Ό

  • λ°°μ—΄μ˜ μ„ μ–Έ μˆœμ„œλŠ” λ‹€μŒκ³Ό κ°™κ³ , 크기λ₯Ό λͺ…μ‹œν•˜μ§€ μ•Šμ€ 배열을 슬라이슀라고 λΆ€λ₯Έλ‹€.
  • 파이썬의 λ”•μ…”λ„ˆλ¦¬ 같이 key, value둜 이루어진 맡도 μžˆλ‹€.
  • κ΅¬μ‘°μ²΄λŠ” λ‹€λ₯Έ 언어와 λ‹€λ₯΄κ²Œ μƒμ„±μžκ°€ λ”°λ‘œ μ—†λ‹€.
// λ°°μ—΄, 슬라이슀
saladArray = [5]string{"CHICKEN", "CARROT", "MUSHROOM"}
internArray = []string{"inseok", "jiwoong"}
internArray = append(internArray, "hyungju")

// λ§΅
saladMaps = map[string]int{"CHICKEN":3, "CARROT":12, "MUSHROOM":5}

// ꡬ쑰체
type salad struct {
	name string
    calories int
    price int
}