doc: update docs/golang.md (#359)
This commit is contained in:
parent
dd53261d3c
commit
1aae2c027e
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))
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
杂项
|
杂项
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user