内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

go語(yǔ)言反引號(hào)轉(zhuǎn)義 go 反引號(hào)

講講go語(yǔ)言的結(jié)構(gòu)體

作為C語(yǔ)言家族的一員,go和c一樣也支持結(jié)構(gòu)體??梢灶惐扔趈ava的一個(gè)POJO。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、寒亭網(wǎng)站維護(hù)、網(wǎng)站推廣。

在學(xué)習(xí)定義結(jié)構(gòu)體之前,先學(xué)習(xí)下定義一個(gè)新類型。

新類型 T1 是基于 Go 原生類型 int 定義的新自定義類型,而新類型 T2 則是 基于剛剛定義的類型 T1,定義的新類型。

這里要引入一個(gè)底層類型的概念。

如果一個(gè)新類型是基于某個(gè) Go 原生類型定義的, 那么我們就叫 Go 原生類型為新類型的底層類型

在上面的例子中,int就是T1的底層類型。

但是T1不是T2的底層類型,只有原生類型才可以作為底層類型,所以T2的底層類型還是int

底層類型是很重要的,因?yàn)閷?duì)兩個(gè)變量進(jìn)行顯式的類型轉(zhuǎn)換,只有底層類型相同的變量間才能相互轉(zhuǎn)換。底層類型是判斷兩個(gè)類型本質(zhì)上是否相同的根本。

這種類型定義方式通常用在 項(xiàng)目的漸進(jìn)式重構(gòu),還有對(duì)已有包的二次封裝方面

類型別名表示新類型和原類型完全等價(jià),實(shí)際上就是同一種類型。只不過(guò)名字不同而已。

一般我們都是定義一個(gè)有名的結(jié)構(gòu)體。

字段名的大小寫決定了字段是否包外可用。只有大寫的字段可以被包外引用。

還有一個(gè)點(diǎn)提一下

如果換行來(lái)寫

Age: 66,后面這個(gè)都好不能省略

還有一個(gè)點(diǎn),觀察e3的賦值

new返回的是一個(gè)指針。然后指針可以直接點(diǎn)號(hào)賦值。這說(shuō)明go默認(rèn)進(jìn)行了取值操作

e3.Age 等價(jià)于 (*e3).Age

如上定義了一個(gè)空的結(jié)構(gòu)體Empty。打印了元素e的內(nèi)存大小是0。

有什么用呢?

基于空結(jié)構(gòu)體類型內(nèi)存零開(kāi)銷這樣的特性,我們?cè)谌粘?Go 開(kāi)發(fā)中會(huì)經(jīng)常使用空 結(jié)構(gòu)體類型元素,作為一種“事件”信息進(jìn)行 Goroutine 之間的通信

這種以空結(jié)構(gòu)體為元素類建立的 channel,是目前能實(shí)現(xiàn)的、內(nèi)存占用最小的 Goroutine 間通信方式。

這種形式需要說(shuō)的是幾個(gè)語(yǔ)法糖。

語(yǔ)法糖1:

對(duì)于結(jié)構(gòu)體字段,可以省略字段名,只寫結(jié)構(gòu)體名。默認(rèn)字段名就是結(jié)構(gòu)體名

這種方式稱為 嵌入字段

語(yǔ)法糖2:

如果是以嵌入字段形式寫的結(jié)構(gòu)體

可以省略嵌入的Reader字段,而直接訪問(wèn)ReaderName

此時(shí)book是一個(gè)各個(gè)屬性全是對(duì)應(yīng)類型零值的一個(gè)實(shí)例。不是nil。這種情況在Go中稱為零值可用。不像java會(huì)導(dǎo)致npe

結(jié)構(gòu)體定義時(shí)可以在字段后面追加標(biāo)簽說(shuō)明。

tag的格式為反單引號(hào)

tag的作用是可以使用[反射]來(lái)檢視字段的標(biāo)簽信息。

具體的作用還要看使用的場(chǎng)景。

比如這里的tag是為了幫助 encoding/json 標(biāo)準(zhǔn)包在解析對(duì)象時(shí)可以利用的規(guī)則。比如omitempty表示該字段沒(méi)有值就不打印出來(lái)。

go類型轉(zhuǎn)換

type_name(expression)

float跟int可以互轉(zhuǎn),但是會(huì)丟失所有精度。

func AppendBool(dst []byte, b bool) []byte

AppendBool 根據(jù) b 的值將“true”或“false”附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte

AppendFloat 將由 FormatFloat 生成的浮點(diǎn)數(shù) f 的字符串形式附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendInt(dst []byte, i int64, base int) []byte

AppendInt 將由 FormatInt 生成的整數(shù)i的字符串形式附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuote(dst []byte, s string) []byte

AppendQuote 將由 Quote 生成的代表 s 的雙引號(hào) Go 字符串文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuoteRune(dst []byte, r rune) []byte

AppendQuoteRune 將由 QuoteRune 生成的表示符文的單引號(hào) Go 字符文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuoteRuneToASCII(dst []byte, r rune) []byte

AppendQuoteRuneToASCII 將由 QuoteRuneToASCII 生成的代表該符文的單引號(hào) Go 字符文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuoteRuneToGraphic(dst []byte, r rune) []byte

AppendQuoteRuneToGraphic 將由 QuoteRuneToGraphic 生成的表示符文的單引號(hào) Go 字符文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuoteToASCII(dst []byte, s string) []byte

AppendQuoteToASCII 將由 QuoteToASCII 生成的代表 s 的雙引號(hào) Go 字符串文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendQuoteToGraphic(dst []byte, s string) []byte

AppendQuoteToGraphic 將由 QuoteToGraphic 生成的代表 s 的雙引號(hào) Go 字符串文字附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func AppendUint(dst []byte, i uint64, base int) []byte

AppendUint 將由 FormatUint 生成的無(wú)符號(hào)整數(shù) i 的字符串形式附加到 dst 并返回?cái)U(kuò)展緩沖區(qū)。

func Atoi(s string) (int, error)

Atoi 返回 ParseInt(s, 10, 0) 轉(zhuǎn)換為 int 類型的結(jié)果。

func CanBackquote(s string) bool

CanBackquote 報(bào)告字符串 s 是否可以不改變?yōu)閱涡蟹匆?hào)字符串,而不包含 tab 以外的控制字符。

func FormatBool(b bool) string

FormatBool 根據(jù) b 的值返回“true”或“false”

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

FormatFloat 根據(jù)格式 fmt 和 precision prec 將浮點(diǎn)數(shù)f轉(zhuǎn)換為字符串。它將結(jié)果進(jìn)行四舍五入,假設(shè)原始數(shù)據(jù)是從 bitSize 位的浮點(diǎn)值獲得的(float32為32,float64為64)。

格式 fmt 是 'b'(-ddddp±ddd,二進(jìn)制指數(shù)),'e'(-d.dddde±dd,十進(jìn)制指數(shù)),'E'(-d.ddddE±dd,十進(jìn)制指數(shù)),'f'(-ddd.dddd,無(wú)指數(shù)),'g'('e'表示大指數(shù),'f'表示否則)或 'G'('E'表示大指數(shù),否則'f')。

precision prec 控制由 'e','E','f','g' 和 'G' 格式打印的位數(shù)(不包括指數(shù))。對(duì)于 'e','E' 和 'f',它是小數(shù)點(diǎn)后的位數(shù)。對(duì)于 'g' 和 'G' 這是總位數(shù)。特殊精度-1使用必需的最小位數(shù),以便 ParseFloat 完全返回 f 。

func FormatInt(i int64, base int) string

FormatInt 返回給定基數(shù)中的i的字符串表示,對(duì)于2 = base = 36.結(jié)果對(duì)于數(shù)字值 = 10使用小寫字母 'a' 到 'z' 。

func FormatUint(i uint64, base int) string

FormatUint 返回給定基數(shù)中的 i 的字符串表示,對(duì)于2 = base = 36.結(jié)果對(duì)于數(shù)字值 = 10使用小寫字母 'a' 到 'z' 。

func IsGraphic(r rune) bool

IsGraphic 報(bào)告符文是否被 Unicode 定義為 Graphic。這些字符包括類別 L,M,N,P,S 和 Z 中的字母,標(biāo)記,數(shù)字,標(biāo)點(diǎn),符號(hào)和空格。

func IsPrint(r rune) bool

IsPrint 報(bào)告該符文是否被 Go 定義為可打印,其定義與 unicode.IsPrint 相同:字母,數(shù)字,標(biāo)點(diǎn),符號(hào)和 ASCII 空格。

func Itoa(i int) string

Itoa 是 FormatInt(int64(i), 10) 的縮寫。

func ParseBool(str string) (bool, error)

ParseBool 返回字符串表示的布爾值。它接受1,t,T,TRUE,true,True,0,f,F(xiàn),F(xiàn)ALSE,false,F(xiàn)alse。任何其他值都會(huì)返回錯(cuò)誤。

func ParseFloat(s string, bitSize int) (float64, error)

ParseFloat 將字符串 s 轉(zhuǎn)換為浮點(diǎn)數(shù),精度由 bitSize:32指定,float32為64; float64為64。當(dāng) bitSize = 32時(shí),結(jié)果仍然具有 float64 類型,但可以在不更改其值的情況下將其轉(zhuǎn)換為 float32。

如果s格式良好且接近有效的浮點(diǎn)數(shù),則 ParseFloat 返回使用 IEEE754 無(wú)偏舍入舍入的最近浮點(diǎn)數(shù)。

ParseFloat 返回的錯(cuò)誤具有具體類型 * NumError 并包含 err.Num = s。

如果 s 在語(yǔ)法上不是格式良好的,ParseFloat 返回 err.Err = ErrSyntax。

如果 s 在語(yǔ)法上格式良好,但距離給定大小的最大浮點(diǎn)數(shù)大于1/2 ULP,則 ParseFloat 返回 f =±Inf,err.Err = ErrRange。

func ParseInt(s string, base int, bitSize int) (i int64, err error)

ParseInt 解釋給定基礎(chǔ)(2到36)中的字符串 s 并返回相應(yīng)的值 i。如果 base == 0,則基數(shù)由字符串的前綴隱含:base 16代表“0x”,base 8代表“0”,否則以10為底數(shù)。

bitSize 參數(shù)指定結(jié)果必須適合的整數(shù)類型。位大小 0,8,16,32 和 64 對(duì)應(yīng)于 int,int8,int16,int32 和 int64。

ParseInt 返回的錯(cuò)誤具有具體類型 * NumError 并包含err.Num = s。如果s為空或包含無(wú)效數(shù)字,則 err.Err = ErrSyntax,返回值為0; 如果與s對(duì)應(yīng)的值不能用給定大小的有符號(hào)整數(shù)表示,則 err.Err = ErrRange,返回的值是相應(yīng) bitSize 和符號(hào)的最大幅度整數(shù)。

func ParseUint(s string, base int, bitSize int) (uint64, error)

ParseUint 就像 ParseInt,但是對(duì)于無(wú)符號(hào)數(shù)字。

func Quote(s string) string

Quote 返回一個(gè)雙引號(hào)的 Go 字符串字面表示s。返回的字符串使用 Go 轉(zhuǎn)義序列 (\t, \n, \xFF, \u0100) 作為 IsPrint 定義的控制字符和非可打印字符。

func QuoteRune(r rune) string

QuoteRune 返回一個(gè)表示符文的單引號(hào) Go 字符。返回的字符串使用 Go 轉(zhuǎn)義序列(\t, \n, \xFF, \u0100) 作為 IsPrint 定義的控制字符和非可打印字符。

func QuoteRuneToASCII(r rune) string

QuoteRuneToASCII 返回表示符文的單引號(hào) Go 字符。對(duì)于非 ASCII 字符和 IsPrint 定義的非可打印字符,返回的字符串使用 Go 轉(zhuǎn)義序列 (\t, \n, \xFF, \u0100)。

func QuoteRuneToGraphic(r rune) string

QuoteRuneToGraphic 返回代表符文的單引號(hào) Go 字符。對(duì)于非 ASCII 字符和 IsGraphic 定義的非可打印字符,返回的字符串使用Go轉(zhuǎn)義序列 (\t, \n, \xFF, \u0100)。

func QuoteToASCII(s string) string

QuoteToASCII 返回一個(gè)代表 s 的雙引號(hào) Go 字符串。對(duì)于非 ASCII 字符和 IsPrint 定義的非可打印字符,返回的字符串使用 Go 轉(zhuǎn)義序列 (\t, \n, \xFF, \u0100) 。

func QuoteToGraphic(s string) string

QuoteToGraphic 返回一個(gè)代表 s 的雙引號(hào) Go 字符串。對(duì)于非 ASCII 字符和 IsGraphic 定義的非可打印字符,返回的字符串使用 Go 轉(zhuǎn)義序列 (\t, \n, \xFF, \u0100)。

func Unquote(s string) (string, error)

Unquote 將 s 解釋為單引號(hào),雙引號(hào)或反引號(hào)的 Go 字符串文字,返回引用的字符串值。(如果 s 是單引號(hào),它將是一個(gè) Go 字符字面量; Unquote 會(huì)返回相應(yīng)的一個(gè)字符字符串。)

在go語(yǔ)言中,如何在反引號(hào)中調(diào)用變量的值而不是變量名

//orFilter.setPredicates(new NodeFilter[] { spanFilter,tableFilter });

nodeList = nodeList.extractAllNodesThatMatch(orFilter,true);

Node[] nodeArray = nodeList.toNodeArray();

for(Node node : nodeArray ){

Span sp=(Span)node;

String spanId = span.getAttribute("id");

if("title".equals(spanId))){

parser.setInputHTML(tag.toHtml());

String tempStr = getHtmlAsNoTag(parser);

golang的雙引號(hào)文本和反引號(hào)文本

golang的雙引號(hào)和反引號(hào)

反引號(hào)(back quote)就是"`",就是鍵盤上和"~"一個(gè)鍵的那個(gè)。

他們的區(qū)別就是:

舉個(gè)例子來(lái)說(shuō):

上面程序運(yùn)行結(jié)果就是:

雙引號(hào)文本里面的 \t ,被解析成一個(gè)tab鍵,所以輸出的時(shí)候就轉(zhuǎn)化成了tab鍵;而反引號(hào)文本的 \t 并沒(méi)有被解析成tab鍵,而是按照字面內(nèi)容輸出。

另外反引號(hào)文本可以包含換行符,而雙引號(hào)文本則不能:

編譯就出錯(cuò):

所以反引號(hào)最常用的兩個(gè)場(chǎng)景是:

golang依次替換字符串中相同的值

不是的,分情況。

golang支持兩種類型的字符串字面量:解釋型字符串:雙引號(hào)括起來(lái)的字符串(““),轉(zhuǎn)義字符(如\n\r等)會(huì)被替換掉。

非解釋型字符串:用反引號(hào)(鍵盤左上角上的)括起來(lái)的字符串,轉(zhuǎn)義字符不會(huì)被解釋且可跨行(原樣輸出)

本文標(biāo)題:go語(yǔ)言反引號(hào)轉(zhuǎn)義 go 反引號(hào)
文章源于:http://m.rwnh.cn/article32/hiiesc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站內(nèi)鏈網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣、服務(wù)器托管網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
简阳市| 江永县| 阿拉善右旗| 博野县| 凤山县| 日照市| 德钦县| 土默特右旗| 阳新县| 潼关县| 乐安县| 雷波县| 永丰县| 故城县| 龙江县| 什邡市| 军事| 和田县| 中牟县| 南涧| 林芝县| 新竹市| 诸暨市| 桑植县| 西和县| 海淀区| 如皋市| 太康县| 来宾市| 石屏县| 福州市| 微博| 元阳县| 余庆县| 大田县| 通化市| 海口市| 仁寿县| 英山县| 灯塔市| 郴州市|