commit 8caaa72cfa42fc74ee935dd5591b265b5a2f2d34 Author: 1549469775 <1549469775@qq.com> Date: Tue Nov 26 19:12:45 2019 +0800 'dd' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6320cd2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data \ No newline at end of file diff --git a/go_fuck.go b/go_fuck.go new file mode 100644 index 0000000..2a71e07 --- /dev/null +++ b/go_fuck.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func test() { + fmt.Printf("test") +} \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..b8a19f8 --- /dev/null +++ b/main.go @@ -0,0 +1,29 @@ +// 包名 +package main + +import ( + "fmt" + "./sm" + "io/ioutil" + "encoding/json" + "./path" + fuck "./sm/fuck" +) + +func main() { + fmt.Println(fuck.Add(1,2)) + fmt.Println(sm.Addd(1,2)) + fmt.Println("Hello, World!") + // 要使用这个方法的话需要一起编译,先用go build . + // test() + var parhArray = path.Output("./data") + fmt.Println(parhArray[0]) + str := "./"+parhArray[0] + jsondata, _ := ioutil.ReadFile(str) + var user []map[string][]int + err := json.Unmarshal(jsondata, &user) + if err != nil { + fmt.Println(err) + } + fmt.Println(user[2]["one"]) +} diff --git a/path/path.go b/path/path.go new file mode 100644 index 0000000..cda35c9 --- /dev/null +++ b/path/path.go @@ -0,0 +1,26 @@ +package path + +import ( + "path/filepath" + "os" + "fmt" +) + +// 模块中要导出的函数,必须首字母大写。 +func Output(path string,) []string { + var array []string + err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error { + if f == nil { + return err + } + if f.IsDir() { + return nil + } + array = append(array, path) + return nil + }) + if err != nil { + fmt.Printf("filepath.Walk() returned %v\n", err) + } + return array +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..97199ef --- /dev/null +++ b/readme.md @@ -0,0 +1,48 @@ +> 目的:快速上手go语言 + +1. `package main` 表示我们这个文件的包名 + +2. `import "fmt"` 表示引入`fmt`包 + +3. 注释的代码 +``` +// 单行注释 +/* + Author by 菜鸟教程 + 我是多行注释 + */ +``` + +4. `func main() {}`必须要有的,作为入口函数执行 + +5. 数据类型: +``` +1. 布尔型 +2. 数字类型 +3. 字符串类型 +4. 派生类型 + +``` + +5. 定义变量: +``` +var age int;//表示定义一个int型的age变量,如果没有初始化,变量默认为零值。 +fruit = apples + oranges;//表示定义一个fruit变量,类型初始化是啥就是啥 +var v_name = value //根据值自行判定变量类型。 +intVal,intVal1 := 1,2//省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,必须要有一个没有被声明的新变量,如果也有声明过的,相当于赋值 +``` + +6. 常量: +``` +//显式类型定义: const b string = "abc" +//隐式类型定义: const b = "abc" +//const c_name1, c_name2 = value1, value2 +//枚举: +const ( + Unknown = 0 + Female = 1 + Male = 2 +) + +//iota: iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。 +``` \ No newline at end of file diff --git a/sm/ac.go b/sm/ac.go new file mode 100644 index 0000000..ff3507a --- /dev/null +++ b/sm/ac.go @@ -0,0 +1,4 @@ +package sm +func Addd(a int, b int) int { + return a + b +} \ No newline at end of file diff --git a/sm/fuck/fuck.go b/sm/fuck/fuck.go new file mode 100644 index 0000000..6029645 --- /dev/null +++ b/sm/fuck/fuck.go @@ -0,0 +1,5 @@ +package api + +func Add(a int, b int) int { + return a + b +} \ No newline at end of file