亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Golang中的占位符詳解

 更新時(shí)間:2023年07月10日 11:17:38   作者:路多辛  
這篇文章主要給大家詳細(xì)總結(jié)了Golang中的占位符用法,文章通過(guò)代碼示例介紹的非常詳細(xì),對(duì)我們學(xué)習(xí)Golang占位符有一定的幫助,需要的朋友可以參考下

1、%v:值占位符,將值格式化為一個(gè)更緊湊的表示形式。

package main
import (
	"fmt"
)
type user struct {
	name string
	age  int
}
func main() {
	u := user{name: "路多辛", age: 18}
	fmt.Printf("The value is: %v\n", u)
	m := map[string]interface{}{"name": "路多辛", "age": 18}
	fmt.Printf("The value is: %v\n", m)
	fmt.Printf("The value is: %v\n", 666)
}

2、%+v:相比%v,如果是結(jié)構(gòu)體,會(huì)帶上字段名。

package main
import (
	"fmt"
)
type user struct {
	name string
	age  int
}
func main() {
	u := user{name: "路多辛", age: 18}
	fmt.Printf("The value is: %+v\n", u)
	m := map[string]interface{}{"name": "路多辛", "age": 18}
	fmt.Printf("The value is: %+v\n", m)
	fmt.Printf("The value is: %+v\n", 666)
}

輸出結(jié)果如下:

The value is: {name:路多辛 age:18}
The value is: map[age:18 name:路多辛]
The value is: 666

3、%#v:該值的go語(yǔ)法表示形式。

package main
import (
	"fmt"
)
type user struct {
	name string
	age  int
}
func main() {
	u := user{name: "路多辛", age: 18}
	fmt.Printf("The value is: %#v\n", u)
	m := map[string]interface{}{"name": "路多辛", "age": 18}
	fmt.Printf("The value is: %#v\n", m)
	fmt.Printf("The value is: %#v\n", 666)
}

輸出結(jié)果如下:

The value is: main.user{name:"路多辛", age:18}
The value is: map[string]interface {}{"age":18, "name":"路多辛"}
The value is: 666

4、%T:值的類型的go語(yǔ)法表示。

package main
import (
    "fmt"
)
type user struct {
    name string
    age  int
}
func main() {
    u := user{name: "路多辛", age: 18}
    fmt.Printf("The value is: %T\n", u)
    m := map[string]interface{}{"name": "路多辛", "age": 18}
    fmt.Printf("The value is: %T\n", m)
    fmt.Printf("The value is: %T\n", 666)
}

輸出結(jié)果如下:

The value is: main.user
The value is: map[string]interface {}
The value is: int

5、%%:輸出一個(gè)字面的百分號(hào)。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%%") // 輸出 %
}

6、%t:?jiǎn)卧~ true 或 false。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%t", true) // 輸出 true
}

7、%b:二進(jìn)制表示形式。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%b", 3) // 輸出:11
}

8、%c:相應(yīng)的Unicode碼值。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%c%c%c的所思所想", 0x8DEF, 0x591A, 0x8F9B)
  // 輸出 路多辛的所思所想
}

9、%d:十進(jìn)表示形式。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%d", 0x12) // 輸出 18
}

10、%o:八進(jìn)表示形式。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%o", 9) // 輸出 11
}

11、%O:八進(jìn)表示形式,帶0o前綴。

package main
import (
    "fmt"
)
func main() {
    fmt.Printf("%O", 9) // 輸出 0o11
}

12、%q:將值格式化為一個(gè)帶有單引號(hào)的字符。

package main
import "fmt"
func main() {
    fmt.Printf("%q", 0x8DEF) // 輸出 '路'
}

13、%x:將值格式化為一個(gè)不帶符號(hào)的采用十六進(jìn)制表示的字符。

package main
import "fmt"
func main() {
    fmt.Printf("%x\n", 0x8DEF) // 輸出 8def
    fmt.Printf("%x", 13) // 輸出 d
}

14、%X:與 %x 不同的是將值格式化為大寫字母形式。

package main
import "fmt"
func main() {
    fmt.Printf("%x\n", 0x8DEF) // 輸出 8DEF
    fmt.Printf("%x", 13) // 輸出 D
}

15、%U:將值格式化為一個(gè)帶有前綴 "U+"的字符串形式,Unicode格式。

package main
import "fmt"
func main() {
    fmt.Printf("%U\n", 0x8DEF) // 輸出 U+8DEF
    fmt.Printf("%U", 13) // 輸出 U+000D
}

16、%e:將值格式化為一個(gè)帶小數(shù)點(diǎn)的科學(xué)計(jì)數(shù)法表示形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %e\n", 10.1) // 輸出 1.010000e+01
}

17、%E 將值格式化為一個(gè)帶小數(shù)點(diǎn)的科學(xué)計(jì)數(shù)法表示形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %E\n", 10.1) // 輸出 1.010000E+01
}

18、%f:將值格式化為帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %f\n", 10.1) //  輸出 10.100000
}

19、%F:同 %f。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %F\n", 10.1) // 輸出 10.100000
}

20、%g:將值格式化為一個(gè)合適的表示形式的字符串,可以自動(dòng)選擇帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式或不帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %g\n", 10) //  輸出 %!g(int=10)
    fmt.Printf("The value is: %g\n", 10.1) //  輸出 10.1
  fmt.Printf("The value is: %g\n", 1000000.1) // 輸出 1.0000001e+06
}

21、%G:與 %g不同的是,%G會(huì)根據(jù)值的范圍選擇采用大寫字母或小寫字母表示的形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %G\n", 10) // 輸出 %!G(int=10)
    fmt.Printf("The value is: %G\n", 10.1) // 輸出 10.1
    fmt.Printf("The value is: %G\n", 1000000.1) // 輸出 1.0000001E+06
}

22、%s 字符串表示形式。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %s\n", "路多辛的博客") // 輸出 路多辛的博客
    fmt.Printf("The value is: %s\n", []byte("路多辛")) // 輸出 路多辛
}

23、%p:將值格式化為一個(gè)指針的地址表示形式,十六進(jìn)制表示,前綴 0x。

package main
import "fmt"
func main() {
    a := 10
    fmt.Printf("The value is: %p\n", &a) // 輸出例如 0xc0000b2008
}

24、%.(數(shù)字)s:截取指定長(zhǎng)度的字符串。

package main
import "fmt"
func main() {
    fmt.Printf("The value is: %.3s\n", "路多辛的博客") // 輸出 路多辛
}

25、%w:將值格式化為一個(gè)錯(cuò)誤消息的字符串形式。

package main
import (
    "errors"
    "fmt"
)
func main() {
    w := fmt.Errorf("wrapD的錯(cuò)誤信息-%w", errors.New("原始錯(cuò)誤信息"))
    fmt.Println(w.Error()) // 輸出 wrap的錯(cuò)誤信息-原始錯(cuò)誤信息
}

以上就是Golang中的占位符詳解的詳細(xì)內(nèi)容,更多關(guān)于Golang占位符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論