doc: update docs/golang.md (#359)
This commit is contained in:
		
							
								
								
									
										102
									
								
								docs/golang.md
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								docs/golang.md
									
									
									
									
									
								
							@@ -1028,6 +1028,108 @@ func main() {
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
<!--rehype:className=wrap-text -->
 | 
					<!--rehype:className=wrap-text -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Golang Embed
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 嵌入为string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
					    _ "embed"
 | 
				
			||||||
 | 
					    "fmt"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//go:embed version.txt
 | 
				
			||||||
 | 
					var version string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					    fmt.Printf("version %q\n", version)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 嵌入为[]byte
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					package main
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
					    _ "embed"
 | 
				
			||||||
 | 
					    "fmt"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//go:embed version.txt
 | 
				
			||||||
 | 
					var versionByte []byte
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					    fmt.Printf("version %q\n", string(versionByte))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 嵌入为embed.FS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					//go:embed hello.txt
 | 
				
			||||||
 | 
					var f embed.FS
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					  data, _ := f.ReadFile("hello.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 嵌入多个文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					//go:embed hello.txt
 | 
				
			||||||
 | 
					//go:embed hello2.txt
 | 
				
			||||||
 | 
					var f embed.FS
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					  data, _ := f.ReadFile("hello.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					  data, _ = f.ReadFile("hello2.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 嵌入子文件夹下的文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					//go:embed p/hello.txt p/hello2.txt
 | 
				
			||||||
 | 
					var f embed.FS
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					  data, _ := f.ReadFile("p/hello.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					  data, _ = f.ReadFile("p/hello2.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 同一个文件嵌入为多个变量
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					//go:embed hello.txt
 | 
				
			||||||
 | 
					var s string
 | 
				
			||||||
 | 
					//go:embed hello.txt
 | 
				
			||||||
 | 
					var s2 string
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					  fmt.Println(s)
 | 
				
			||||||
 | 
					  fmt.Println(s2)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 匹配模式
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``` go
 | 
				
			||||||
 | 
					//go:embed p/*
 | 
				
			||||||
 | 
					var f embed.FS
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					  data, _ := f.ReadFile("p/.hello.txt")
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					  data, _ = f.ReadFile("p/q/.hi.txt") // 没有嵌入 p/q/.hi.txt
 | 
				
			||||||
 | 
					  fmt.Println(string(data))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
杂项
 | 
					杂项
 | 
				
			||||||
-------------
 | 
					-------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user