1. 程式人生 > >golang 新手練習 go語言 10分鐘練習貼

golang 新手練習 go語言 10分鐘練習貼

下面是golang的常見的入門程式碼 每天華10分鐘練習一邊 加強記憶   對於有c c++ 基礎的人 入門快 而且很快也可以做專案,但是忘記的也快,1個月不敲 竟然 處處是錯誤,也怪golang 語法有點奇葩,但是確實比C和C++ 好多了,我用的ide是  LITEIDE

package main

import (
	"fmt"
	"os"
	"strconv"
	"time"
)

func show() {
	//...
}

func ss(x int) {
	//...
}

func kk(x int) int {

	return x + 10
}

func ww(s1 string, s2 string) string { //有參函式 有返回值

	return s1 + s2
}
func gg() (int, string) {

	return 12, "derr"
}

const PI = 1000

type vt struct { //定義一個組合
	x, y int
}

func (d vt) add() int { //為組合新增一個函式add

	return d.x + d.y

}

func (d vt) String() string { //為組合新增一個函式Sring

	return strconv.Itoa(d.x) + " " + strconv.Itoa(d.y)
}

func (d vt) div() int { // 為組合新增一個函式div

	return d.x / d.y
}
func dv(str string) { //有參函式
	fmt.Println(str)
}

var exit chan int = make(chan int) // 定義一個管道

func test(t int) { //函式
	exit <- t
}
func main() { //主函式
	fmt.Println(PI)
	i := 0
	for i < 100 { //for 迴圈
		//...
		i++
	}

	for k := 0; k < 100; k++ { //for 迴圈
		//...
	}

	if 1 > 2 { //分支
		//...
	} else {
		//...
	}

	d := 0

	switch d { //switch
	case 10:
		//...
		break
	case 9:
		//....
		break
	}
	hostname, err := os.Hostname() //得到OS

	fmt.Println(".....................")

	if err != nil { //分支  錯誤處理
		fmt.Println(err)
	} else {

		fmt.Println(hostname)
	}

	mp := make(map[string]string) //map 鍵值對
	mp["www"] = "dsfsdf"
	mp["ddd"] = "fgtryrt"

	fmt.Println(mp["www"])

	var mm map[int]string = make(map[int]string) //var map 鍵值對
	mm[1] = "dgdfg"
	mm[2] = "derrr"

	arr := []int{1, 2, 3, 4, 5, 6, 7} //陣列

	for i := 0; i < len(arr); i++ { //輸出陣列
		fmt.Println(i, arr[i])
	}
	arr1 := []string{"234234", "fdgdfg"} //字串陣列
	fmt.Println(arr1[0])

	go func() { //協程
		fmt.Println("hello world")
	}()

	kp := make(map[interface{}]interface{}) //map 一個通用 鍵值對

	kp[1] = "sdfsd"
	kp[2] = 232

	fmt.Println(kp)
	go dv("mmmmmmmmmm...") //協程

	time.Sleep(1000) //和java 的thread.sleep 一樣

	go test(9990) //協程

	fmt.Println(<-exit) // 輸出管道

	time.Sleep(2000)

}