doc: update docs/golang.md (#359)
This commit is contained in:
parent
dd53261d3c
commit
1aae2c027e
@ -163,7 +163,7 @@ Quick Reference
|
||||
[Zip](./docs/zip.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[APT](./docs/apt.md)<!--rehype:style=background: rgb(30 144 255);-->
|
||||
[tar](./docs/tar.md)<!--rehype:style=background: rgb(215 89 62);-->
|
||||
[pacman](./docs/pacman.md)<!--rehype:style=background: rgb(24 147 209);&class=tag&data-lang=archlinux&class=contributing-->
|
||||
[pacman](./docs/pacman.md)<!--rehype:style=background: rgb(24 147 209);&class=tag&data-lang=archlinux&class=contributing-->
|
||||
[Linux Command](./docs/linux-command.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=命令速查-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
|
102
docs/golang.md
102
docs/golang.md
@ -1028,6 +1028,108 @@ func main() {
|
||||
```
|
||||
<!--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