From 8caaa72cfa42fc74ee935dd5591b265b5a2f2d34 Mon Sep 17 00:00:00 2001
From: 1549469775 <1549469775@qq.com>
Date: Tue, 26 Nov 2019 19:12:45 +0800
Subject: [PATCH] 'dd'

---
 .gitignore      |  1 +
 go_fuck.go      |  7 +++++++
 main.go         | 29 +++++++++++++++++++++++++++++
 path/path.go    | 26 ++++++++++++++++++++++++++
 readme.md       | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 sm/ac.go        |  4 ++++
 sm/fuck/fuck.go |  5 +++++
 7 files changed, 120 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 go_fuck.go
 create mode 100644 main.go
 create mode 100644 path/path.go
 create mode 100644 readme.md
 create mode 100644 sm/ac.go
 create mode 100644 sm/fuck/fuck.go

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