From 1b561825d558e8a8c4bf1c9b76134c759b2c8ffb Mon Sep 17 00:00:00 2001 From: "S.Lance" Date: Fri, 22 Nov 2019 11:41:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Go=E8=AF=AD=E8=A8=80=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\347\224\237\346\210\220\345\231\250.go" | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 "\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" diff --git "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" new file mode 100644 index 000000000..e6552282e --- /dev/null +++ "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" @@ -0,0 +1,97 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "log" + "math/rand" + "strings" + "time" + "unicode/utf8" +) + +type data struct { + Title string // + Famous []string // 名人名言 + Before []string // 前面垫话 + After []string // 后面垫话 + Bosh []string // 废话 +} + +var ( + 数据 = func() (data data) { + jsonData, err := ioutil.ReadFile("./data.json") + if err != nil { + log.Fatal(err) + } + err = json.Unmarshal(jsonData, &data) + if err != nil { + log.Fatal(err) + } + return + }() + 名人名言 = 数据.Famous // a 代表前面垫话,b代表后面垫话 + 前面垫话 = 数据.Before // 在名人名言前面弄点废话 + 后面垫话 = 数据.After // 在名人名言后面弄点废话 + 废话 = 数据.Bosh // 代表文章主要废话来源 + + 标题 = "我是谁" + + 下一句废话 = 洗牌遍历(废话) + 下一句名人名言 = 洗牌遍历(名人名言) +) + +const 重复度 = 2 + +func 洗牌遍历(列表 []string) func() string { + var 池 []string + for i := 0; i < 重复度; i++ { + 池 = append(池, 列表...) + } + rand.Seed(time.Now().UnixNano()) + rand.Shuffle(len(池), func(i, j int) { 池[i], 池[j] = 池[j], 池[i] }) + + 索引 := 0 + return func() (val string) { + if 索引 >= len(池) { + 索引 = 0 + } + val = 池[索引] + 索引++ + return + } +} + +func 来点名人名言() (名人名言 string) { + 名人名言 = 下一句名人名言() + 名人名言 = strings.ReplaceAll(名人名言, "a", 数据.Before[rand.Intn(len(数据.Before))]) + 名人名言 = strings.ReplaceAll(名人名言, "b", 数据.After[rand.Intn(len(数据.After))]) + return +} + +func 另起一段() (newline string) { + newline = ". " + newline += "\r\n" + newline += " " + return +} + +func main() { + fmt.Print("请输入文章主题: ") + fmt.Scanln(&标题) + var 文章 string + for utf8.RuneCountInString(文章) < 6000 { + 分支 := rand.Intn(100) + if 分支 < 5 { + 文章 += 另起一段() + } else if 分支 < 20 { + 文章 += 来点名人名言() + } else { + 文章 += 下一句废话() + } + } + 文章 = strings.ReplaceAll(文章, "x", 标题) + fmt.Print(文章) + fmt.Print(utf8.RuneCountInString(文章)) +} From 79e9a088d320bca110cecb6589820d93bb4158ff Mon Sep 17 00:00:00 2001 From: "S.Lance" Date: Fri, 22 Nov 2019 12:13:06 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Update=20=E8=87=AA=E5=8A=A8=E7=8B=97?= =?UTF-8?q?=E5=B1=81=E4=B8=8D=E9=80=9A=E6=96=87=E7=AB=A0=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=99=A8.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" | 1 - 1 file changed, 1 deletion(-) diff --git "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" index e6552282e..a63074928 100644 --- "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" +++ "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" @@ -93,5 +93,4 @@ func main() { } 文章 = strings.ReplaceAll(文章, "x", 标题) fmt.Print(文章) - fmt.Print(utf8.RuneCountInString(文章)) } From 709e702f48e999e3640b3549c226532e9dd54c0c Mon Sep 17 00:00:00 2001 From: "S.Lance" Date: Fri, 22 Nov 2019 13:29:38 +0800 Subject: [PATCH 3/5] Add title comment --- ...\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" index a63074928..c236bd6d9 100644 --- "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" +++ "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" @@ -12,7 +12,7 @@ import ( ) type data struct { - Title string // + Title string // 标题 Famous []string // 名人名言 Before []string // 前面垫话 After []string // 后面垫话 From a108a7dcd29e4389f3e913ab0298b39210fa7fec Mon Sep 17 00:00:00 2001 From: "S.Lance" Date: Fri, 22 Nov 2019 14:02:16 +0800 Subject: [PATCH 4/5] Adjust var --- ...\207\347\253\240\347\224\237\346\210\220\345\231\250.go" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" index c236bd6d9..207f39c01 100644 --- "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" +++ "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" @@ -65,8 +65,8 @@ func 洗牌遍历(列表 []string) func() string { func 来点名人名言() (名人名言 string) { 名人名言 = 下一句名人名言() - 名人名言 = strings.ReplaceAll(名人名言, "a", 数据.Before[rand.Intn(len(数据.Before))]) - 名人名言 = strings.ReplaceAll(名人名言, "b", 数据.After[rand.Intn(len(数据.After))]) + 名人名言 = strings.ReplaceAll(名人名言, "a", 前面垫话[rand.Intn(len(前面垫话))]) + 名人名言 = strings.ReplaceAll(名人名言, "b", 后面垫话[rand.Intn(len(后面垫话))]) return } @@ -92,5 +92,5 @@ func main() { } } 文章 = strings.ReplaceAll(文章, "x", 标题) - fmt.Print(文章) + fmt.Println(文章) } From 559c1f2d2283d53f777eaecc4ca861c9cea8af9b Mon Sep 17 00:00:00 2001 From: "S.Lance" Date: Fri, 22 Nov 2019 15:19:27 +0800 Subject: [PATCH 5/5] Compatible go1.10 --- ...\207\347\253\240\347\224\237\346\210\220\345\231\250.go" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" index 207f39c01..625c846b7 100644 --- "a/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" +++ "b/\350\207\252\345\212\250\347\213\227\345\261\201\344\270\215\351\200\232\346\226\207\347\253\240\347\224\237\346\210\220\345\231\250.go" @@ -65,8 +65,8 @@ func 洗牌遍历(列表 []string) func() string { func 来点名人名言() (名人名言 string) { 名人名言 = 下一句名人名言() - 名人名言 = strings.ReplaceAll(名人名言, "a", 前面垫话[rand.Intn(len(前面垫话))]) - 名人名言 = strings.ReplaceAll(名人名言, "b", 后面垫话[rand.Intn(len(后面垫话))]) + 名人名言 = strings.Replace(名人名言, "a", 前面垫话[rand.Intn(len(前面垫话))], -1) + 名人名言 = strings.Replace(名人名言, "b", 后面垫话[rand.Intn(len(后面垫话))], -1) return } @@ -91,6 +91,6 @@ func main() { 文章 += 下一句废话() } } - 文章 = strings.ReplaceAll(文章, "x", 标题) + 文章 = strings.Replace(文章, "x", 标题, -1) fmt.Println(文章) }