From acd7b852f463a3465b42805b847a241c1509f443 Mon Sep 17 00:00:00 2001 From: xiongxinwei <86140903+3293172751@users.noreply.github.com> Date: Fri, 1 Jul 2022 15:43:35 +0800 Subject: [PATCH] go-advanced --- README.md | 7 +- TOC.md | 24 - assets/image-20220630192622583.png | Bin 0 -> 94034 bytes btc/markdown/1.md | 0 btc/markdown/10.md | 0 btc/markdown/11.md | 0 btc/markdown/12.md | 0 btc/markdown/13.md | 0 btc/markdown/14.md | 0 btc/markdown/15.md | 0 btc/markdown/16.md | 0 btc/markdown/17.md | 0 btc/markdown/18.md | 0 btc/markdown/19.md | 0 btc/markdown/2.md | 0 btc/markdown/20.md | 0 btc/markdown/21.md | 0 btc/markdown/22.md | 0 btc/markdown/23.md | 0 btc/markdown/24.md | 0 btc/markdown/25.md | 0 btc/markdown/26.md | 0 btc/markdown/27.md | 0 btc/markdown/28.md | 0 btc/markdown/29.md | 0 btc/markdown/3.md | 0 btc/markdown/30.md | 0 btc/markdown/31.md | 0 btc/markdown/32.md | 0 btc/markdown/33.md | 0 btc/markdown/34.md | 0 btc/markdown/35.md | 0 btc/markdown/36.md | 0 btc/markdown/37.md | 0 btc/markdown/38.md | 0 btc/markdown/39.md | 0 btc/markdown/4.md | 0 btc/markdown/40.md | 0 btc/markdown/41.md | 0 btc/markdown/42.md | 0 btc/markdown/43.md | 0 btc/markdown/44.md | 0 btc/markdown/45.md | 0 btc/markdown/46.md | 0 btc/markdown/47.md | 0 btc/markdown/48.md | 0 btc/markdown/49.md | 0 btc/markdown/5.md | 0 btc/markdown/50.md | 0 btc/markdown/6.md | 0 btc/markdown/7.md | 0 btc/markdown/8.md | 0 btc/markdown/9.md | 0 btc/toc.md | 1995 ---------------------------- {btc => go-advancend}/README.md | 0 go-advancend/code/1.go | 6 + go-advancend/markdown/1.md | 224 ++++ go-advancend/markdown/10.md | 20 + go-advancend/markdown/11.md | 20 + go-advancend/markdown/12.md | 20 + go-advancend/markdown/13.md | 20 + go-advancend/markdown/14.md | 20 + go-advancend/markdown/15.md | 20 + go-advancend/markdown/16.md | 20 + go-advancend/markdown/17.md | 20 + go-advancend/markdown/18.md | 20 + go-advancend/markdown/19.md | 20 + go-advancend/markdown/2.md | 20 + go-advancend/markdown/20.md | 20 + go-advancend/markdown/21.md | 20 + go-advancend/markdown/22.md | 20 + go-advancend/markdown/23.md | 20 + go-advancend/markdown/24.md | 20 + go-advancend/markdown/25.md | 20 + go-advancend/markdown/26.md | 20 + go-advancend/markdown/27.md | 20 + go-advancend/markdown/28.md | 20 + go-advancend/markdown/29.md | 20 + go-advancend/markdown/3.md | 20 + go-advancend/markdown/30.md | 20 + go-advancend/markdown/31.md | 20 + go-advancend/markdown/32.md | 20 + go-advancend/markdown/33.md | 20 + go-advancend/markdown/34.md | 20 + go-advancend/markdown/35.md | 20 + go-advancend/markdown/36.md | 20 + go-advancend/markdown/37.md | 20 + go-advancend/markdown/38.md | 20 + go-advancend/markdown/39.md | 20 + go-advancend/markdown/4.md | 20 + go-advancend/markdown/40.md | 20 + go-advancend/markdown/41.md | 20 + go-advancend/markdown/42.md | 20 + go-advancend/markdown/43.md | 20 + go-advancend/markdown/44.md | 20 + go-advancend/markdown/45.md | 20 + go-advancend/markdown/46.md | 20 + go-advancend/markdown/47.md | 20 + go-advancend/markdown/48.md | 20 + go-advancend/markdown/49.md | 20 + go-advancend/markdown/5.md | 20 + go-advancend/markdown/50.md | 20 + go-advancend/markdown/6.md | 20 + go-advancend/markdown/7.md | 20 + go-advancend/markdown/8.md | 20 + go-advancend/markdown/9.md | 20 + go-advancend/script.go | 55 + go-advancend/test.go | 128 ++ 108 files changed, 1397 insertions(+), 2022 deletions(-) create mode 100644 assets/image-20220630192622583.png delete mode 100644 btc/markdown/1.md delete mode 100644 btc/markdown/10.md delete mode 100644 btc/markdown/11.md delete mode 100644 btc/markdown/12.md delete mode 100644 btc/markdown/13.md delete mode 100644 btc/markdown/14.md delete mode 100644 btc/markdown/15.md delete mode 100644 btc/markdown/16.md delete mode 100644 btc/markdown/17.md delete mode 100644 btc/markdown/18.md delete mode 100644 btc/markdown/19.md delete mode 100644 btc/markdown/2.md delete mode 100644 btc/markdown/20.md delete mode 100644 btc/markdown/21.md delete mode 100644 btc/markdown/22.md delete mode 100644 btc/markdown/23.md delete mode 100644 btc/markdown/24.md delete mode 100644 btc/markdown/25.md delete mode 100644 btc/markdown/26.md delete mode 100644 btc/markdown/27.md delete mode 100644 btc/markdown/28.md delete mode 100644 btc/markdown/29.md delete mode 100644 btc/markdown/3.md delete mode 100644 btc/markdown/30.md delete mode 100644 btc/markdown/31.md delete mode 100644 btc/markdown/32.md delete mode 100644 btc/markdown/33.md delete mode 100644 btc/markdown/34.md delete mode 100644 btc/markdown/35.md delete mode 100644 btc/markdown/36.md delete mode 100644 btc/markdown/37.md delete mode 100644 btc/markdown/38.md delete mode 100644 btc/markdown/39.md delete mode 100644 btc/markdown/4.md delete mode 100644 btc/markdown/40.md delete mode 100644 btc/markdown/41.md delete mode 100644 btc/markdown/42.md delete mode 100644 btc/markdown/43.md delete mode 100644 btc/markdown/44.md delete mode 100644 btc/markdown/45.md delete mode 100644 btc/markdown/46.md delete mode 100644 btc/markdown/47.md delete mode 100644 btc/markdown/48.md delete mode 100644 btc/markdown/49.md delete mode 100644 btc/markdown/5.md delete mode 100644 btc/markdown/50.md delete mode 100644 btc/markdown/6.md delete mode 100644 btc/markdown/7.md delete mode 100644 btc/markdown/8.md delete mode 100644 btc/markdown/9.md delete mode 100644 btc/toc.md rename {btc => go-advancend}/README.md (100%) create mode 100644 go-advancend/code/1.go create mode 100644 go-advancend/markdown/1.md create mode 100644 go-advancend/markdown/10.md create mode 100644 go-advancend/markdown/11.md create mode 100644 go-advancend/markdown/12.md create mode 100644 go-advancend/markdown/13.md create mode 100644 go-advancend/markdown/14.md create mode 100644 go-advancend/markdown/15.md create mode 100644 go-advancend/markdown/16.md create mode 100644 go-advancend/markdown/17.md create mode 100644 go-advancend/markdown/18.md create mode 100644 go-advancend/markdown/19.md create mode 100644 go-advancend/markdown/2.md create mode 100644 go-advancend/markdown/20.md create mode 100644 go-advancend/markdown/21.md create mode 100644 go-advancend/markdown/22.md create mode 100644 go-advancend/markdown/23.md create mode 100644 go-advancend/markdown/24.md create mode 100644 go-advancend/markdown/25.md create mode 100644 go-advancend/markdown/26.md create mode 100644 go-advancend/markdown/27.md create mode 100644 go-advancend/markdown/28.md create mode 100644 go-advancend/markdown/29.md create mode 100644 go-advancend/markdown/3.md create mode 100644 go-advancend/markdown/30.md create mode 100644 go-advancend/markdown/31.md create mode 100644 go-advancend/markdown/32.md create mode 100644 go-advancend/markdown/33.md create mode 100644 go-advancend/markdown/34.md create mode 100644 go-advancend/markdown/35.md create mode 100644 go-advancend/markdown/36.md create mode 100644 go-advancend/markdown/37.md create mode 100644 go-advancend/markdown/38.md create mode 100644 go-advancend/markdown/39.md create mode 100644 go-advancend/markdown/4.md create mode 100644 go-advancend/markdown/40.md create mode 100644 go-advancend/markdown/41.md create mode 100644 go-advancend/markdown/42.md create mode 100644 go-advancend/markdown/43.md create mode 100644 go-advancend/markdown/44.md create mode 100644 go-advancend/markdown/45.md create mode 100644 go-advancend/markdown/46.md create mode 100644 go-advancend/markdown/47.md create mode 100644 go-advancend/markdown/48.md create mode 100644 go-advancend/markdown/49.md create mode 100644 go-advancend/markdown/5.md create mode 100644 go-advancend/markdown/50.md create mode 100644 go-advancend/markdown/6.md create mode 100644 go-advancend/markdown/7.md create mode 100644 go-advancend/markdown/8.md create mode 100644 go-advancend/markdown/9.md create mode 100644 go-advancend/script.go create mode 100644 go-advancend/test.go diff --git a/README.md b/README.md index ca01b5a8..35c91f21 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,9 @@ graph LR > 参与区块链CUB项目开发必须熟悉Linux指令,熟悉git团队开发,还有是基于docker的容器,更好的迁移开发环境和迁移链码(blockcode) -### 🖱️ linux[从入门到精通](https://github.com/3293172751/CS_COURSE/blob/master/linux/README.md) +### 🖱️ [linux从入门到精通](https://github.com/3293172751/CS_COURSE/blob/master/linux/README.md) -### 🖱️ Git—[必备神器](https://github.com/3293172751/CS_COURSE/blob/master/Git/README.md) +### 🖱️ [Git—必备神器](https://github.com/3293172751/CS_COURSE/blob/master/Git/README.md) ### [🖱️ Docker入门到进阶](docker/README.md) @@ -114,7 +114,7 @@ graph LR > 以太坊和比特币一样,底层框架都是区块链协议,区块链本质上是一个应用了密码学技术的分布式数据库系统。建议看一下**以太坊白皮书(需要有golang编程基础)** - +![image-20220630192622583](assets/image-20220630192622583.png) ## [🖱️点击进入ETH学习](eth/TOC.md) @@ -151,3 +151,4 @@ graph LR #### [参与贡献❤️❤️💕💕](Git/git-contributor.md) 如果你也想对本项目做出贡献,那么你可以先把该项目进行 `fork` 或者 `git clone` 到本地,然后自己建立一个分支 `your-branch`,然后上传资料到 对应目录 下,图片信息可以上传到` /images`,然后更新 `README`。 + diff --git a/TOC.md b/TOC.md index 3040ac85..70a76cbe 100644 --- a/TOC.md +++ b/TOC.md @@ -65,30 +65,6 @@ -### Go web框架gin框架 - -#### 1. [](gin/1.md) - -#### 2. [](gin/2.md) - -#### 3. [](gin/3.md) - -#### 4. [](4.md) - -#### 5. [](5.md) - -#### 6. [](6.md) - -#### 7. [](7.md) - -#### 8. [](8.md) - -#### 9. [](9.md) - -#### 10. [](10.md) - - - ## Go语言番外篇 #### [chan底层分析](markdown/chan底层分析.md) diff --git a/assets/image-20220630192622583.png b/assets/image-20220630192622583.png new file mode 100644 index 0000000000000000000000000000000000000000..70bcb11aa618267508d4556eff0691bf91aba4fd GIT binary patch literal 94034 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%0DawI?cV3e% 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 ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +> ### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +> +> ### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + +---- + +**我们默认为是C语言是占4个字节,这个和Go语言是不一样的。** + +**在Go语言中,int默认是8个字节** + ++ int32是四个字节 ++ int64是八个字节 ++ int是八个字节 + +```go +/************************************************************************* + > File Name: a.go + > Author: smile + > Mail: 3293172751nss@gmail.com + > Created Time: Thu 30 Jun 2022 01:13:35 AM PDT + ************************************************************************/ +package main +import( + "fmt" +) + +func main(){ + var( + a = 40000 + b = 50000 +) +var c int +var d int32 + c = 50000 + d = 50000 + fmt.Println(a*a) + fmt.Println(b*b) + fmt.Println(c*c) + fmt.Println(d*d) +} +``` + +**我们对上面的代码进行编译:** + +``` +root@ubuntu:/c# go run a.go +1600000000 +2500000000 +2500000000 +-1794967296 +``` + + + +**对于C语言来说** + + + +**编译为汇编文件** + +```asm +root@ubuntu:/c# gcc -S a.c +root@ubuntu:/c# cat a.s + .file "a.c" + .text + .section .rodata +.LC0: + .string "%d\n,%d\n" +.LC1: + .string "int c = %d\n,int64_t d = %lld\n" + .text + .globl main + .type main, @function +main: +.LFB0: + .cfi_startproc + endbr64 + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + movq %rsp, %rbp + .cfi_def_cfa_register 6 + subq $32, %rsp + movl $50000, -20(%rbp) + movl $40000, -16(%rbp) + movl -16(%rbp), %eax + imull %eax, %eax + movl %eax, %edx + movl -20(%rbp), %eax + imull %eax, %eax + movl %eax, %esi + leaq .LC0(%rip), %rdi + movl $0, %eax + call printf@PLT + movq -8(%rbp), %rax + imulq %rax, %rax + movq %rax, %rdx + movl -12(%rbp), %eax + imull %eax, %eax + movl %eax, %esi + leaq .LC1(%rip), %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + leave + .cfi_def_cfa 7, 8 + ret + .cfi_endproc +.LFE0: + .size main, .-main + .ident "GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0" + .section .note.GNU-stack,"",@progbits + .section .note.gnu.property,"a" + .align 8 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + .string "GNU" +1: + .align 8 + .long 0xc0000002 + .long 3f - 2f +2: + .long 0x3 +3: + .align 8 +4: +``` + + + +**编译为二进制代码** + +``` +root@ubuntu:/c# gcc -Og -c a.c +root@ubuntu:/c# cat a.o E¹^_º򔈍5¿¸蹺H5¿¸.ed +,%d +int c = %d +,int64_t d = %lld +GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0GNU󿾄zRx + H򽁁 R*a.c.LC0.LC1main_GLOBAL_OFFSET_TABLE___printf_chk 񁀿ÿÿ$񁀿ÿÿ5 +񁀿ÿÿD񁀿ÿÿ .symtab.strtab.shstrtab.rela.text.data.bss.rodata.str1.1.comment.note.GNU-stack.note.gnu.property.rela.eh_frame @Rւ` + &12&@0¸,Il@8 + 8h + +  7P{root@ubuntu:/c# XshellXshellXshellXshellXshell +XshellXshellXshellXshellXshell: command not found +``` + +**`.o`后缀的文件是二进制格式的,没有查看意义,我们可以得出:机器执行的程序只是一个字节序列, 它是对一系列指令的编码。机器对产生这些指令的源代码几乎一无所知。** + +**如果需要显示出机器代码文件的内容,我们需要用到反汇编器(这个程序非常有用),在Linux中`-d`指令标志的objdump 可以充当这个角色** + +```asm +root@ubuntu:/c# objdump -d a.o + +a.o: file format elf64-x86-64 + + +Disassembly of section .text: + +0000000000000000
: + 0: f3 0f 1e fa endbr64 + 4: 48 83 ec 08 sub $0x8,%rsp + 8: b9 00 10 5e 5f mov $0x5f5e1000,%ecx + d: ba 00 f9 02 95 mov $0x9502f900,%edx + 12: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 19 + 19: bf 01 00 00 00 mov $0x1,%edi + 1e: b8 00 00 00 00 mov $0x0,%eax + 23: e8 00 00 00 00 callq 28 + 28: b9 00 00 00 00 mov $0x0,%ecx + 2d: ba 00 00 00 00 mov $0x0,%edx + 32: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 39 + 39: bf 01 00 00 00 mov $0x1,%edi + 3e: b8 00 00 00 00 mov $0x0,%eax + 43: e8 00 00 00 00 callq 48 + 48: b8 00 00 00 00 mov $0x0,%eax + 4d: 48 83 c4 08 add $0x8,%rsp + 51: c3 retq +``` + + + +**对于Go语言我们同样可以使用反汇编命令** + +```asp +root@ubuntu:/c# go build -o a a.go +root@ubuntu:/c# ./a +1600000000 +2500000000 +2500000000 +-1794967296 +root@ubuntu:/c# objdump -d a | tail -n 10 + 48d03c: 00 00 + 48d03e: 48 c7 44 24 20 01 00 movq $0x1,0x20(%rsp) + 48d045: 00 00 + 48d047: e8 a4 96 ff ff callq 4866f0 + 48d04c: 48 8b ac 24 80 00 00 mov 0x80(%rsp),%rbp + 48d053: 00 + 48d054: 48 81 c4 88 00 00 00 add $0x88,%rsp + 48d05b: c3 retq + 48d05c: e8 2f 47 fc ff callq 451790 + 48d061: e9 2a fe ff ff jmpq 48ce90 +``` + + + + + +## END 链接 + ++ [回到目录](../README.md) ++ [下一节](2.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/10.md b/go-advancend/markdown/10.md new file mode 100644 index 00000000..56be5e08 --- /dev/null +++ b/go-advancend/markdown/10.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第10节 ++ [回到目录](../README.md) ++ [上一节](9.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](9.md) ++ [下一节](11.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/11.md b/go-advancend/markdown/11.md new file mode 100644 index 00000000..23f7f360 --- /dev/null +++ b/go-advancend/markdown/11.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第11节 ++ [回到目录](../README.md) ++ [上一节](10.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](10.md) ++ [下一节](12.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/12.md b/go-advancend/markdown/12.md new file mode 100644 index 00000000..3ed5ef98 --- /dev/null +++ b/go-advancend/markdown/12.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第12节 ++ [回到目录](../README.md) ++ [上一节](11.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](11.md) ++ [下一节](13.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/13.md b/go-advancend/markdown/13.md new file mode 100644 index 00000000..d9743e5b --- /dev/null +++ b/go-advancend/markdown/13.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第13节 ++ [回到目录](../README.md) ++ [上一节](12.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](12.md) ++ [下一节](14.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/14.md b/go-advancend/markdown/14.md new file mode 100644 index 00000000..31d1eea8 --- /dev/null +++ b/go-advancend/markdown/14.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第14节 ++ [回到目录](../README.md) ++ [上一节](13.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](13.md) ++ [下一节](15.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/15.md b/go-advancend/markdown/15.md new file mode 100644 index 00000000..0fd0e5d0 --- /dev/null +++ b/go-advancend/markdown/15.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第15节 ++ [回到目录](../README.md) ++ [上一节](14.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](14.md) ++ [下一节](16.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/16.md b/go-advancend/markdown/16.md new file mode 100644 index 00000000..535438fb --- /dev/null +++ b/go-advancend/markdown/16.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第16节 ++ [回到目录](../README.md) ++ [上一节](15.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](15.md) ++ [下一节](17.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/17.md b/go-advancend/markdown/17.md new file mode 100644 index 00000000..fccf3db6 --- /dev/null +++ b/go-advancend/markdown/17.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第17节 ++ [回到目录](../README.md) ++ [上一节](16.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](16.md) ++ [下一节](18.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/18.md b/go-advancend/markdown/18.md new file mode 100644 index 00000000..1a0f3018 --- /dev/null +++ b/go-advancend/markdown/18.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第18节 ++ [回到目录](../README.md) ++ [上一节](17.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](17.md) ++ [下一节](19.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/19.md b/go-advancend/markdown/19.md new file mode 100644 index 00000000..923278ed --- /dev/null +++ b/go-advancend/markdown/19.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第19节 ++ [回到目录](../README.md) ++ [上一节](18.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](18.md) ++ [下一节](20.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/2.md b/go-advancend/markdown/2.md new file mode 100644 index 00000000..41de75b0 --- /dev/null +++ b/go-advancend/markdown/2.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第2节 ++ [回到目录](../README.md) ++ [上一节](1.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](1.md) ++ [下一节](3.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/20.md b/go-advancend/markdown/20.md new file mode 100644 index 00000000..276c886a --- /dev/null +++ b/go-advancend/markdown/20.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第20节 ++ [回到目录](../README.md) ++ [上一节](19.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](19.md) ++ [下一节](21.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/21.md b/go-advancend/markdown/21.md new file mode 100644 index 00000000..a369568b --- /dev/null +++ b/go-advancend/markdown/21.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第21节 ++ [回到目录](../README.md) ++ [上一节](20.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](20.md) ++ [下一节](22.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/22.md b/go-advancend/markdown/22.md new file mode 100644 index 00000000..bdad25b4 --- /dev/null +++ b/go-advancend/markdown/22.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第22节 ++ [回到目录](../README.md) ++ [上一节](21.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](21.md) ++ [下一节](23.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/23.md b/go-advancend/markdown/23.md new file mode 100644 index 00000000..493f889b --- /dev/null +++ b/go-advancend/markdown/23.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第23节 ++ [回到目录](../README.md) ++ [上一节](22.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](22.md) ++ [下一节](24.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/24.md b/go-advancend/markdown/24.md new file mode 100644 index 00000000..85d32832 --- /dev/null +++ b/go-advancend/markdown/24.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第24节 ++ [回到目录](../README.md) ++ [上一节](23.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](23.md) ++ [下一节](25.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/25.md b/go-advancend/markdown/25.md new file mode 100644 index 00000000..2b4e2073 --- /dev/null +++ b/go-advancend/markdown/25.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第25节 ++ [回到目录](../README.md) ++ [上一节](24.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](24.md) ++ [下一节](26.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/26.md b/go-advancend/markdown/26.md new file mode 100644 index 00000000..67ff1182 --- /dev/null +++ b/go-advancend/markdown/26.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第26节 ++ [回到目录](../README.md) ++ [上一节](25.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](25.md) ++ [下一节](27.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/27.md b/go-advancend/markdown/27.md new file mode 100644 index 00000000..5c360cd3 --- /dev/null +++ b/go-advancend/markdown/27.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第27节 ++ [回到目录](../README.md) ++ [上一节](26.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](26.md) ++ [下一节](28.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/28.md b/go-advancend/markdown/28.md new file mode 100644 index 00000000..23bf8293 --- /dev/null +++ b/go-advancend/markdown/28.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第28节 ++ [回到目录](../README.md) ++ [上一节](27.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](27.md) ++ [下一节](29.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/29.md b/go-advancend/markdown/29.md new file mode 100644 index 00000000..e4f1ec79 --- /dev/null +++ b/go-advancend/markdown/29.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第29节 ++ [回到目录](../README.md) ++ [上一节](28.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](28.md) ++ [下一节](30.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/3.md b/go-advancend/markdown/3.md new file mode 100644 index 00000000..7df8d28d --- /dev/null +++ b/go-advancend/markdown/3.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第3节 ++ [回到目录](../README.md) ++ [上一节](2.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](2.md) ++ [下一节](4.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/30.md b/go-advancend/markdown/30.md new file mode 100644 index 00000000..3a2760af --- /dev/null +++ b/go-advancend/markdown/30.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第30节 ++ [回到目录](../README.md) ++ [上一节](29.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](29.md) ++ [下一节](31.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/31.md b/go-advancend/markdown/31.md new file mode 100644 index 00000000..91aaa02f --- /dev/null +++ b/go-advancend/markdown/31.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第31节 ++ [回到目录](../README.md) ++ [上一节](30.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](30.md) ++ [下一节](32.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/32.md b/go-advancend/markdown/32.md new file mode 100644 index 00000000..584c4a01 --- /dev/null +++ b/go-advancend/markdown/32.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第32节 ++ [回到目录](../README.md) ++ [上一节](31.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](31.md) ++ [下一节](33.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/33.md b/go-advancend/markdown/33.md new file mode 100644 index 00000000..c2132b28 --- /dev/null +++ b/go-advancend/markdown/33.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第33节 ++ [回到目录](../README.md) ++ [上一节](32.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](32.md) ++ [下一节](34.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/34.md b/go-advancend/markdown/34.md new file mode 100644 index 00000000..80117f83 --- /dev/null +++ b/go-advancend/markdown/34.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第34节 ++ [回到目录](../README.md) ++ [上一节](33.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](33.md) ++ [下一节](35.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/35.md b/go-advancend/markdown/35.md new file mode 100644 index 00000000..97097019 --- /dev/null +++ b/go-advancend/markdown/35.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第35节 ++ [回到目录](../README.md) ++ [上一节](34.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](34.md) ++ [下一节](36.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/36.md b/go-advancend/markdown/36.md new file mode 100644 index 00000000..16125f22 --- /dev/null +++ b/go-advancend/markdown/36.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第36节 ++ [回到目录](../README.md) ++ [上一节](35.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](35.md) ++ [下一节](37.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/37.md b/go-advancend/markdown/37.md new file mode 100644 index 00000000..87368012 --- /dev/null +++ b/go-advancend/markdown/37.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第37节 ++ [回到目录](../README.md) ++ [上一节](36.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](36.md) ++ [下一节](38.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/38.md b/go-advancend/markdown/38.md new file mode 100644 index 00000000..35c120e2 --- /dev/null +++ b/go-advancend/markdown/38.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第38节 ++ [回到目录](../README.md) ++ [上一节](37.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](37.md) ++ [下一节](39.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/39.md b/go-advancend/markdown/39.md new file mode 100644 index 00000000..6dd1b4de --- /dev/null +++ b/go-advancend/markdown/39.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第39节 ++ [回到目录](../README.md) ++ [上一节](38.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](38.md) ++ [下一节](40.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/4.md b/go-advancend/markdown/4.md new file mode 100644 index 00000000..9064c9d2 --- /dev/null +++ b/go-advancend/markdown/4.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第4节 ++ [回到目录](../README.md) ++ [上一节](3.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](3.md) ++ [下一节](5.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/40.md b/go-advancend/markdown/40.md new file mode 100644 index 00000000..cb81f6c2 --- /dev/null +++ b/go-advancend/markdown/40.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第40节 ++ [回到目录](../README.md) ++ [上一节](39.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](39.md) ++ [下一节](41.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/41.md b/go-advancend/markdown/41.md new file mode 100644 index 00000000..4576d95f --- /dev/null +++ b/go-advancend/markdown/41.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第41节 ++ [回到目录](../README.md) ++ [上一节](40.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](40.md) ++ [下一节](42.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/42.md b/go-advancend/markdown/42.md new file mode 100644 index 00000000..60e37244 --- /dev/null +++ b/go-advancend/markdown/42.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第42节 ++ [回到目录](../README.md) ++ [上一节](41.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](41.md) ++ [下一节](43.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/43.md b/go-advancend/markdown/43.md new file mode 100644 index 00000000..d3e90f8f --- /dev/null +++ b/go-advancend/markdown/43.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第43节 ++ [回到目录](../README.md) ++ [上一节](42.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](42.md) ++ [下一节](44.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/44.md b/go-advancend/markdown/44.md new file mode 100644 index 00000000..de4dc8ac --- /dev/null +++ b/go-advancend/markdown/44.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第44节 ++ [回到目录](../README.md) ++ [上一节](43.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](43.md) ++ [下一节](45.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/45.md b/go-advancend/markdown/45.md new file mode 100644 index 00000000..20ca1623 --- /dev/null +++ b/go-advancend/markdown/45.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第45节 ++ [回到目录](../README.md) ++ [上一节](44.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](44.md) ++ [下一节](46.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/46.md b/go-advancend/markdown/46.md new file mode 100644 index 00000000..3b3cda0d --- /dev/null +++ b/go-advancend/markdown/46.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第46节 ++ [回到目录](../README.md) ++ [上一节](45.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](45.md) ++ [下一节](47.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/47.md b/go-advancend/markdown/47.md new file mode 100644 index 00000000..430350c8 --- /dev/null +++ b/go-advancend/markdown/47.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第47节 ++ [回到目录](../README.md) ++ [上一节](46.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](46.md) ++ [下一节](48.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/48.md b/go-advancend/markdown/48.md new file mode 100644 index 00000000..df96c213 --- /dev/null +++ b/go-advancend/markdown/48.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第48节 ++ [回到目录](../README.md) ++ [上一节](47.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](47.md) ++ [下一节](49.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/49.md b/go-advancend/markdown/49.md new file mode 100644 index 00000000..34918cae --- /dev/null +++ b/go-advancend/markdown/49.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第49节 ++ [回到目录](../README.md) ++ [上一节](48.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](48.md) ++ [下一节](50.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/5.md b/go-advancend/markdown/5.md new file mode 100644 index 00000000..2cbb3faf --- /dev/null +++ b/go-advancend/markdown/5.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第5节 ++ [回到目录](../README.md) ++ [上一节](4.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](4.md) ++ [下一节](6.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/50.md b/go-advancend/markdown/50.md new file mode 100644 index 00000000..68143d38 --- /dev/null +++ b/go-advancend/markdown/50.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第50节 ++ [回到目录](../README.md) ++ [上一节](49.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](49.md) ++ [下一节](51.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/6.md b/go-advancend/markdown/6.md new file mode 100644 index 00000000..6dd3939f --- /dev/null +++ b/go-advancend/markdown/6.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第6节 ++ [回到目录](../README.md) ++ [上一节](5.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](5.md) ++ [下一节](7.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/7.md b/go-advancend/markdown/7.md new file mode 100644 index 00000000..b09198bd --- /dev/null +++ b/go-advancend/markdown/7.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第7节 ++ [回到目录](../README.md) ++ [上一节](6.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](6.md) ++ [下一节](8.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/8.md b/go-advancend/markdown/8.md new file mode 100644 index 00000000..a5c7e3de --- /dev/null +++ b/go-advancend/markdown/8.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第8节 ++ [回到目录](../README.md) ++ [上一节](7.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](7.md) ++ [下一节](9.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/markdown/9.md b/go-advancend/markdown/9.md new file mode 100644 index 00000000..bdcb01c5 --- /dev/null +++ b/go-advancend/markdown/9.md @@ -0,0 +1,20 @@ ++ [author](https://github.com/3293172751) +# 第9节 ++ [回到目录](../README.md) ++ [上一节](8.md) +> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/) +### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)** +### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)** +--- +[TOC] + + + + + +## END 链接 ++ [回到目录](../README.md) ++ [上一节](8.md) ++ [下一节](10.md) +--- ++ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md) \ No newline at end of file diff --git a/go-advancend/script.go b/go-advancend/script.go new file mode 100644 index 00000000..085041be --- /dev/null +++ b/go-advancend/script.go @@ -0,0 +1,55 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "strconv" +) + +func main() { + + var a int = 1 + for i := 1; i < 51; i++ { + + a1 := strconv.Itoa(a) + a2 := strconv.Itoa((a + 1)) + a3 := strconv.Itoa((a - 1)) + filePath := "markdown/" + a1 + ".md" + file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666) + //在原来的基础上追加666表示访问权限 + if err != nil { + fmt.Println("文件打开失败", err) + } + //及时关闭file句柄 + defer file.Close() + + //写入文件时,使用带缓存的 *Writer + write := bufio.NewWriter(file) + write.WriteString("+ [author](https://github.com/3293172751)\n") + write.WriteString("# 第" + a1 + "节\n") + + //批量加入文件, + + write.WriteString("+ [回到目录](../README.md)\n") + write.WriteString("+ [上一节](" + a3 + ".md)\n") + write.WriteString("> ❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:[http://nsddd.top](http://nsddd.top/)\n") + write.WriteString("### **[Go语言基础篇](https://github.com/3293172751/Block_Chain/blob/master/TOC.md)**\n") + write.WriteString("### **[Go语言100篇进阶](https://github.com/3293172751/Block_Chain/blob/master/Gomd_super/README.md)**\n") + write.WriteString("---\n") + write.WriteString("[TOC]\n") + for i := 0; i < 5; i++ { + write.WriteString("\n") + } + write.WriteString("## END 链接\n") + write.WriteString("+ [回到目录](../README.md)\n") + write.WriteString("+ [上一节](" + a3 + ".md)\n") + write.WriteString("+ [下一节](" + a2 + ".md)\n") + write.WriteString("---\n") + write.WriteString("+ [参与贡献❤️💕💕](https://github.com/3293172751/Block_Chain/blob/master/Git/git-contributor.md)") + //Flush将缓存的文件真正写入到文件中 + write.Flush() + a = a + 1 + } + +} diff --git a/go-advancend/test.go b/go-advancend/test.go new file mode 100644 index 00000000..cfb2aa45 --- /dev/null +++ b/go-advancend/test.go @@ -0,0 +1,128 @@ +package main + +import ( + "bufio" + "fmt" + "io" + "os" +) + +type CharCount struct { + ChCount int // 记录英文个数 + NumCount int // 记录数字的个数 + SpaceCount int // 记录空格的个数 + OtherCount int // 记录其它字符的个数 +} + +func main() { + str := "markdown" //目录 + err := os.Mkdir(str, 0666) + // MkdirAll 递归创建目录 + if err != nil { + fmt.Println("err=", err) + } + //fmt.Println("当前目录为:", os.Getwd) + + //思路: 打开一个文件, 创一个Reader + //每读取一行,就去统计该行有多少个 英文、数字、空格和其他字符 + //然后将结果保存到一个结构体 + fileName := str + "/1.md" + file, err := os.Open(fileName) + if err != nil { + fmt.Printf("open file err=%v\n", err) + return + } + defer file.Close() + //定义个CharCount 实例 + var count CharCount + //创建一个Reader + reader := bufio.NewReader(file) + + //开始循环的读取fileName的内容 + for { + str, err := reader.ReadString('\n') + if err == io.EOF { //读到文件末尾就退出 + break + } + //遍历 str ,进行统计 + for _, v := range str { + + switch { //无项目,相当于分支结构 + case v >= 'a' && v <= 'z': + fallthrough //穿透 + case v >= 'A' && v <= 'Z': + count.ChCount++ + case v == ' ' || v == '\t': + count.SpaceCount++ + case v >= '0' && v <= '9': + count.NumCount++ + default: + count.OtherCount++ + } + } + } + c := "字符的个数为+count.ChCount 数字的个数为+count.NumCount 空格的个数为+count.SpaceCount, 其它字符个数+ count.OtherCount" + //输出统计的结果看看是否正确 + fmt.Printf("字符的个数为=%v 数字的个数为=%v 空格的个数为=%v 其它字符个数=%v", + count.ChCount, count.NumCount, count.SpaceCount, count.OtherCount) + + //1.打开要操作的文件 + fileobj, err := os.OpenFile(str+"1.md", os.O_RDWR, 0664) + //1.1打开文件报错 + if err != nil { + fmt.Printf("open file failed,err:%v", err) + return + } + + //2.因为没有办法直接在文件中插入内容,所以要借助一个临时文件 + tmpFile, err := os.OpenFile(str+"/1.tmp", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0665) + if err != nil { + fmt.Printf("creat file failed,err:%v", err) + return + } + + //3.读原文件写入临时文件 + //3.1读原文件 读到你想要插入的位置之前 + //设置一次读1字节 因为只把a读出 只要能成功读出光标就在你读取的内容之后 + var ret [1]byte + ret1 := ret[:] + n, err := fileobj.Read(ret1) //读的文件放在ret1中 + //读取文件失败 + if err != nil { + fmt.Printf("read file failed,err:%v", err) + return + } + ret2 := ret1[0:n] + //3.2把从源文件读的内容写入临时文件 把a写入了临时文件 + tmpFile.Write(ret2) + //3.3接着写入你想要插入的内容 + s1 := []string{c} + tmpFile.Write(s1) + + //3.4紧接着把源文件后续的内容写入临时文件 + //3.4.1设置一次读取多少字节 + var x [1024]byte + //3.4.2循环读取 + for { + //3.4.2从源文件读的内容放到切片中 + n, err := fileobj.Read(x[:]) + if err == io.EOF { + tmpFile.Write(x[:n]) + break + } + if err != nil { + fmt.Printf("read file failed,%v:\n", err) + return + + } + tmpFile.Write(x[:n]) + + } + + //4.源文件后续的内容也写入到了临时文件中 + //4.1 关闭两个文件 + fileobj.Close() + tmpFile.Close() + //4.2 将临时文件名字重命名为自己起的名字 + os.Rename("./sb.tmp", "./sb.txt") +}