ํจํค์ง ๊ธฐ๋ณธโญโญโญ
package main
//์ ์ธ ๋ฐฉ๋ฒ
import (
"fmt"
"os"
)
func main() {
var name string
fmt.Println("์ด๋ฆ์?: ")
fmt.Scanf("%s", &name)
fmt.Fprintf(os.Stdout, "Hi! %s\n", name) //ํฐ๋ฏธ๋์์ ์งํ
// cd, go run .\package1.go
}
- ํจํค์ง : ์ฝ๋ ๊ตฌ์กฐํ(๋ชจ๋) ๋ฐ ์ฌ์ฌ์ฉ
- ์์ง๋, ๊ฒฐํฉ๋
- Go : ํจํค์ง ๋จ์์ ๋
๋ฆฝ์ ์ด๊ณ ์์ ๋จ์๋ก ๊ฐ๋ฐ -> ์์ ํจํค์ง๋ฅผ ๊ฒฐํฉํด์ ํ๋ก๊ทธ๋จ์ ์์ฑ ํ ๊ฒ์ ๊ถ๊ณ
- ํจํค์ง ์ด๋ฆ = ๋๋ ํ ๋ฆฌ ์ด๋ฆ
- ๊ฐ์ ํจํค์ง ๋ด -> ์์คํ์ผ๋ค์ ๋๋ ํ ๋ฆฌ๋ช
์ ํจํค์ง ๋ช
์ผ๋ก ์ฌ์ฉํ๋ค.
- ๋ค์ด๋ฐ ๊ท์น : ์๋ฌธ์ private ํจํค์ง ์ธ๋ถ ์ ๊ทผ ๋ถ๊ฐ(๋ด๋ถ๋ง ๊ฐ๋ฅ), ๋๋ฌธ์ : public ํจํค์ง ์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅ
- Go : main ํจํค์ง๋ ํน๋ณํ๊ฒ ์ธ์ -> ์ปดํ์ผ๋ฌ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌx, ํ๋ก๊ทธ๋จ์ ์์์ start point!
- ๋ด๊ฐ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉ
- section4 / lib / lib.go ํ์ผ
// ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ทผ์ ์ด(1)
package lib
import "fmt"
func init() {
fmt.Println("lib Package > init start!")
}
//num ์ฒดํฌ (์
๋ ฅ๊ฐ 10๋ณด๋ค ํฌ๋ฉด true, ์ด์ธ๋ false)
func CheckNum(c int32) bool {
return c > 10
}
- package lib ์ผ๋ก ์์ฑํ num ์ฒดํฌ ํจ์ ์์ฑ
- section4 / package2.go ํ์ผ
package main
//go path๊ฐ goproject๋ก ์ง์
import (
"fmt"
checkUp "section4/lib" //์ฐ๋ฆฌ๊ฐ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
_ "section4/lib2"
)
func main() {
fmt.Println("10๋ณด๋ค ํฐ ์? : ", lib.CheckNum(4)) //๋๋ฌธ์์ฌ์ผ ์ ๊ทผ๊ฐ๋ฅ public
}
- main์์ import๋ก ๋ด๊ฐ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๋ฌ์์ lib.CheckNum์ผ๋ก ํจ์ ์ฌ์ฉ ๊ฐ๋ฅ
- checkUp "section4/lib" : Alias ๋ณ์นญ์ฌ์ฉ
- _ "section4/lib2" : ๋น ์๋ณ์, ์ง๊ธ ์ฌ์ฉํ์ง ์์ง๋ง ๋์ค์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ๋ป
- ์ด๊ธฐํ
//go ์ด๊ธฐํ ํจ์(1)
package main
import (
"fmt"
)
func init() {
fmt.Println("Init Method Start!")
}
func main() {
fmt.Println("Main Method Start!")
}
- init : ํจํค์ง ๋ก๋์์ ๊ฐ์ฅ ๋จผ์ ํธ์ถ, ํ ํ์ผ์ ์ฌ๋ฌ๊ฐ ์์ด๋๋จ
- ๊ฐ์ฅ ๋จผ์ ์ด๊ธฐํ๋๋ ์์
์์ฑ ์ ์ ์ฉํ๋ค
- importํ ์ธ๋ถ ํจํค์ง ์ฌ์ฉ์์ ๊ทธ ํจํค์ง์ ์๋ ์ด๊ธฐํ๋ ์์ ๋จผ์ ์คํํ main์ผ๋ก ๋์ด์ด
๋ฐ์ดํฐ ํ์
- bool
// ๋ฐ์ดํฐ ํ์
: Bool(1)
package main
import "fmt"
func main() {
//์์ 1
var b1 bool = true
var b2 bool = false
b3 := true
fmt.Println("ex1 : ", b1)
fmt.Println("ex2 : ", b2)
fmt.Println("ex3 : ", b3)
fmt.Println("ex4 : ", b3 == b3)
fmt.Println("ex5 : ", b1 && b3)
fmt.Println("ex6 : ", b1 || b2)
fmt.Println("ex7 : ", !b1)
//์์ 1 ๋
ผ๋ฆฌ์ฐ์ฐ์
fmt.Println("ex : ", true && true)
fmt.Println("ex : ", true && false)
fmt.Println("ex : ", false && false)
fmt.Println("ex : ", true || true)
fmt.Println("ex : ", true || false)
fmt.Println("ex : ", false || false)
fmt.Println("ex : ", !true)
fmt.Println("ex : ", !false)
//์์ 2 ๋น๊ต์ฐ์ฐ์
num1 := 15
num2 := 37
fmt.Println("ex : ", num1 < num2)
fmt.Println("ex : ", num1 > num2)
fmt.Println("ex : ", num1 == num2)
fmt.Println("ex : ", num1 != num2)
}
- Bool(Boolean) : ์ฐธ๊ณผ ๊ฑฐ์ง
- ์กฐ๊ฑด๋ถ ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ ์ฃผ๋ก ์ฌ์ฉ : !, ||(or), &&(and)
- ์๋ฌต์ ํ๋ณํ ์๋จ : 0, Nil -> False ๋ณํ ์์
- Numeric, Go์์ ๋ค์ํ๊ฒ ์ฌ์ฉํจ(๋ณต์์๋ ์์)
//๋ฐ์ดํฐ ํ์
: Numeric(1)
package main
import "fmt"
func main() {
var num1 int = 17
var num2 int = -68
var num3 int = 0631 //8์ง์
var num4 int = 0x32fa2c75 //16์ง์
fmt.Println("ex1 : ", num1)
fmt.Println("ex1 : ", num2)
fmt.Println("ex1 : ", num3)
fmt.Println("ex1 : ", num4)
}
- ๋ฐ์ดํฐ ํ์
: ์ซ์ํ
- ์ ์, ์ค์, ๋ณต์์
- 32bit, 64bit, unsigned(์์)
- ์ ์ : 8์ง์(0), 16์ง์(0x), 10์ง์
//๋ฐ์ดํฐ ํ์
: Numeric(2) go์์ ๋ค์ํ๊ฒ ์ฌ์ฉํจ
package main
import "fmt"
func main() {
//๋ฐ์ดํฐ ํ์
: ์ซ์ํ
//์ ์ํ ๋ฌธ์ ์ถ๋ ฅ
//์์ 1
//์์คํค(์๋ฌธ)
//byte 8bit
var char1 byte = 72
var char2 byte = 0110
var char3 byte = 0x48
//์์ 2
//์ ๋์ฝ๋(ํ๊ธ)
//rune 32bit
var char4 rune = 50556 //์ ๋์ฝ๋
var char5 rune = 0142574 //44032(8์ง์)
var char6 rune = 0xC57C //44032(16์ง์)
//%c ๋ฌธ์, %d 10์ง์, %o 8์ง์, %x 16์ง์
fmt.Printf("%c %c %c\n", char1, char2, char3)
fmt.Printf("%d %d %d\n", char1, char2, char3)
fmt.Printf("%d %o %x\n", char1, char2, char3)
fmt.Printf("%c %c %c\n", char4, char5, char6)
fmt.Printf("%d %d %d\n", char4, char5, char6)
fmt.Printf("%d %o %x\n", char4, char5, char6)
}
- ๋ถ๋์์์ ์ค์ฐจ ์ฃผ์
//๋ฐ์ดํฐ ํ์
: Numeric(3)
package main
import "fmt"
func main() {
//์ค์(๋ถ๋์์์ )
//floot32(7์๋ฆฌ), floot64(15์๋ฆฌ)
//์์ 1
var num1 float32 = 0.14
var num2 float32 = .75647
var num3 float32 = 442.0378373
var num4 float32 = 10.0
//์ง์ ํ๊ธฐ๋ฒ
var num5 float32 = 14e6
var num6 float32 = .156875e+3
var num7 float32 = 5.32521e-10
fmt.Println("ex1 : ", num1)
fmt.Println("ex1 : ", num2)
fmt.Println("ex1 : ", num3)
fmt.Println("ex1 : ", num4)
fmt.Println("ex1 : ", num4-0.1)
fmt.Println("ex1 : ", float32(num4-0.1)) //ํ๋ณํ
fmt.Println("ex1 : ", float64(num4-0.1)) //๋ฒ์ ํญ ๋์ด์ง๋ฉด ๋ฏธ์ธํ๊ฒ ๊ฐ ๋ฌ๋ผ์ง. ๋ถ๋์์์ ์ค์ฐจ ์ผ์ด๋จ / ์ํ๊ถ๋ฑ ์ฃผ์!!
fmt.Println("ex1 : ", num5)
fmt.Println("ex1 : ", num6)
fmt.Println("ex1 : ", num7)
}
- ๊ฐ ๊ณ์ฐํ ๋ ํ๋ณํ์ผ๋ก ํ ๋ง์ถฐ์ค
- ์ฃผ์) ๋ฒ์ ํญ(ex.float64) ๋์ด์ง๋ฉด ๋ฏธ์ธํ๊ฒ ๊ฐ ๋ฌ๋ผ์ง -> ๋ถ๋์์์ ์ค์ฐจ ์ผ์ด๋จ.
'GO์ธ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GO] ์ ์ด๋ฌธ ๋ฐ ๋ฐ๋ณต๋ฌธ (0) | 2023.01.16 |
---|---|
[GO] Go์ธ์ด ํน์ง,๋ณ์,์์,์ด๊ฑฐํ (1) | 2023.01.05 |
[GO] ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ, ์ปดํจํฐ ์๋ฆฌ (1) | 2023.01.03 |