Go

๐Ÿƒ GO์˜ ํŠน์ง• ์‚ดํŽด๋ณด๊ธฐ

go lang

Posted by labft3231 on April 2, 2020

์ƒ๊ฐ ์ •๋ฆฌ๋ฅผ ์œ„ํ•œ GO์˜ ํŠน์ง• ์‚ดํŽด๋ณด๊ธฐ

  1. go workspace

    • go ์„ค์น˜์‹œ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” C:\go\bin ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ ์ฒ˜์Œ ์‹œ์ž‘ํ• ๋•Œ ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พธ๋Š”๊ฒŒ ์ข‹๋‹ค
    • go ๊ฐ™์€ ๊ฒฝ์šฐ bin์•ˆ์— ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜๊ณ  workspace ๋˜ํ•œ bin์•ˆ์— ์„ค์ • ๋œ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พธ์–ด์„œ ๋‚˜์ค‘์— ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŽ์•„์กŒ์„๋•Œ ํŒจํ‚ค์ง€๊ฐ€ ๊ผฌ์ด๋Š”๊ฑธ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • python ๊ฐ™์€ ๊ฒฝ์šฐ์—” virtual env๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ํŒจํ‚ค์ง€๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•œ๋ฐ go๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์— GOPATH์™€ GOBIN์„ ์„ค์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.
  2. ๋ณ€์ˆ˜ ํŠน์ง•

    • ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ var a int = 1 ํ˜•ํƒœ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • js์ฒ˜๋Ÿผ var a = โ€œtextโ€ ํ˜•ํƒœ๋กœ datatype ์„ค์ • ์•ˆํ•ด๋„ ์„ ์–ธ์ด ๋˜๊ธดํ•จ
    • ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
    • ๋‹ค์–‘ํ•œ ๋ณ€์ˆ˜๋ฅผ var i, j, k int๋กœ ํ•œ๋ฒˆ์— ์„ ์–ธ๋„ ๊ฐ€๋Šฅ
    • ํ•จ์ˆ˜ ๋‚ด๋ถ€๋งŒ ์ ์šฉ๋˜๋Š” := ๋ฅผ ํ†ตํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅ
    • underscore ์‚ฌ์šฉ์•ˆํ•จ.
    • ์ƒ์ˆ˜ ์„ค์ •์€ const๋กœ ์„ค์ • ๊ฐ€๋Šฅ(๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๊ฐ’)
1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func main() {
	var basicText string = "basic text"
	var text = "text"
	value := 3
	fmt.Println(basic_text)
	fmt.Println(text)
	fmt.Println(value)
}

  1. ์—ฐ์‚ฐ์ž ํŠน์ง•

    • ๋น„ํŠธ์—ฐ์‚ฐ์ž, ํ• ๋‹น์—ฐ์‚ฌ์ž ๋“ฑ ์‚ฌ์šฉ๊ฐ€๋Šฅ
    • ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ ๊ฐ’์„ ์–ป์„์ˆ˜ ์žˆ๋‹ค.
  2. ์กฐ๊ฑด๋ฌธ

    • while, do while ์—†์Œ

    • for (for i := 1; i <= 100; i++)

      • for๋ฌธ์„ while์ฒ˜๋Ÿผ

        1
        2
        3
        
        for n < 10 {
                n *= 2         
            }
        
      • for๋ฌธ์œผ๋กœ ๋ฌดํ•œ๋ฃจํ”„

        1
        2
        3
        
        for {
                println("Infinite loop")        
            }
        
      • for range

        1
        2
        3
        4
        5
        
        names := []string{"ํ™๊ธธ๋™", "์ด์ˆœ์‹ ", "๊ฐ•๊ฐ์ฐฌ"}
                
        for index, name := range names {
            println(index, name)
        }
        
  3. structure์˜ ํŠน์ง•

    • ์ฒซ๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ธ์ง€ ์†Œ๋ฌธ์ž์ธ์ง€์— ๋”ฐ๋ผ private์ธ์ง€ public์ธ์ง€ ์ •ํ•ด์ง„๋‹ค.
    • Java getter, setter ์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๊ถŒ์žฅ
    • structure ์„ ์–ธ์‹œ ํ•ด๋‹น ๊ตฌ์กฐ์ฒด๊ฐ€ ์–ด๋–ค ์ผ์„ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋ช…์‹œ(์ฃผ์„ ์ฒ˜๋ฆฌ) ํ•ด์ฃผ๋Š”๊ฑธ ๊ถŒ์žฅ