---
# System prepended metadata

title: Golang
tags: ['2022']

---

# Golang

### (1). Why GO ?

    速度快，可讀性高



### (2). Hello World
```go=
package main // package

import "fmt" //

func main() {
    // print
	fmt.Print("Hello world")
	fmt.Printf("Hello world")
	fmt.Println("Hello world","QuQ")
}
```

### (2). 指令

```
go version            // 查看 Version
go run XXX.go
go build XXX.go

go mod init MOD名字    // 
go get                // 抓套件
go install            // 將套件下載到設定黨
go fmt XXX.go         // Coding Style 整理 (大專案不適用)
```

### (3). 變數

```go=
// var name <dataType> = value
var a int = 1

// a := value
a := 1
```

:::danger
```
## 注意 : 有沒用到的變數、package 會報錯
```
:::

### (4). 條件句

```go=
if a==1 {
    fmt.Print("Hello world")
}else{
    fmt.Print("Hello world")
}
```

### (5). Loop
TT 沒有 While，但可用
```go=
for i:=0;i<=10;i++{
	fmt.Print("afdsfs")
}
```


### (6). Function

```go=
// func func_name (input) (output){ }

func name( a int )(c, b int){
    // 功能
    return 1,2
}
```


### (7). OOP

```go=
// struct
type V struct{
    a int
    b int
}

func ( test_v V ) func()(c, b int){ // 當前Methods屬於V
    return test_v.a, test_v.b
}
```

### (8). Co-routine

```go=
func main() {
    go func1()
    func2()
}
```