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语言非常相似