Project_1 go语言基础语法实践

91 阅读2分钟
package main

import (
	//vscode 中的go 插件 会检测没有使用的并标记,尽量让自己的代码看起来精简一些
	"fmt"
	// "strings"  
	// "time"
	// "net/http"
)

func add(a ,b int) int {
	return a + b
}

func self_Add(a *int) int {
	*a += 2
	return *a
}

func exists(m map[int]string, k int) (v string, ok bool) {
	v, ok = m[k]
	return v, ok
}



func main() {
	fmt.Println("hello world")

//go的函数封装和实现
//add
	// a := 1
	// b := 2
	// c := add(a, b)
	// fmt.Println(c)
//exists
	// a := map[int]string{ 1 : "one", 2 : "two", 3 : "three", 4 : "four", 5 : "five"}
	// fmt.Println(exists(a, 2))  

//指针操作
	// a := 0
	// fmt.Println(self_Add(&a))

	// // http.Handle("/", http.FileServer(http.Dir(".")))
	// // http.ListenAndServe(":8080", nil)

	// var a [5]int
	// a[4] = 100
	// fmt.Println(a[4], len(a))

	// b := [5]int{1, 2, 3, 4, 5}
	// fmt.Println(a, b)

	// var arrD [4][2]int
	// for i := 0; i < 4; i++ {
	// 	for j := 0; j < 2; j++ {
	// 		arrD[i][j] = i + j
	// 		fmt.Println("this line is for", i, j, "the value is: ", arrD[i][j])
	// 	}
	// }

	// t := time.Now()
	// fmt.Println(t)

//分支操作
	// case_test := 2
	// switch case_test {
	// case 1:
	// 	fmt.Println("case 1")
	// case 2:
	// 	fmt.Println("case 2")
	// default:
	// 	fmt.Println("faliue!")
	// }

//切片操作
	// s := make([]string, 3)
	// s[0] = "a"
	// s[1] = "b"
	// s[2] = "c"

	// c := make([]string, len(s))
	// copy(c, s)

	// fmt.Println("s:", s, "c:", c)
	// fmt.Println(s[0:2])

	// good := []string{"g", "o", "o", "d"}
	// fmt.Println("this is:", good)

//列表操作
// 	m := make(map[string]int)
// 	m["zero"] = 0
// 	m["one"] = 1
// 	m["two"] = 2

// 	fmt.Println(m["unknow"])

// 	delete(m, "one")
// 	fmt.Println(m)

// 	r, ok := m["unknow"]   //变量的定义可以使用 :=,而赋值不需要
// 	f, ifok := m["zero"]   //map是完全无序的,遍历只会偏向随机的输出结果

// 	fmt.Println(r, ok, f, ifok)

// //编列slice和map(range)
// 	nums := []int{1,2,3,4,5,6,7,8}
// 	sum := 0
// 	for i, num := range nums {
// 		sum += num
// 		if num == nums[len(nums) - 1] {
// 			fmt.Println("index:", i, "num:", num)
// 		}
// 	}
// 	fmt.Println("sum:", sum)

// //遍历数组(切片slice)和map
// 	nums := []int{1,2,3,4,5,6,7,8,9,0}
// 	sum := 0

// 	for i, num := range nums {  //如果使用range方法快速遍历切片,那么返回两个值, index 和 value
// 		sum += num
// 		if num == 4 {
// 			fmt.Println("this time the value of number is ", num, "& the index is: ", i)
// 		}
// 		fmt.Println(num, ",", i)
// 	}

// 	m := map[string]int{"one": 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5}

// 	for key, value := range m {
// 		fmt.Println("the key is :", key, "the value is :", value)
// 	}

	
}

这是一个简单的练习模块,虽然并非按照顺序实现,但是涵盖了第一个视频中所有的基础语法使用,通过这次练习我对go语言有了一个基础的认识,和我学习的第一门c语言非常相似