1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      go語言換行 go語言換行根據(jù)系統(tǒng)

      基礎(chǔ)知識 - Golang 中的格式化輸入輸出

      【格式化輸出】

      網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為成都廣告設(shè)計等企業(yè)提供專業(yè)服務(wù)。

      // 格式化輸出:將 arg 列表中的 arg 轉(zhuǎn)換為字符串輸出

      // 使用動詞 v 格式化 arg 列表,非字符串元素之間添加空格

      Print(arg列表)

      // 使用動詞 v 格式化 arg 列表,所有元素之間添加空格,結(jié)尾添加換行符

      Println(arg列表)

      // 使用格式字符串格式化 arg 列表

      Printf(格式字符串, arg列表)

      // Print 類函數(shù)會返回已處理的 arg 數(shù)量和遇到的錯誤信息。

      【格式字符串】

      格式字符串由普通字符和占位符組成,例如:

      "abc%+ #8.3[3]vdef"

      其中 abc 和 def 是普通字符,其它部分是占位符,占位符以 % 開頭(注:%% 將被轉(zhuǎn)義為一個普通的 % 符號,這個不算開頭),以動詞結(jié)尾,格式如下:

      %[旗標(biāo)][寬度][.精度][arg索引]動詞

      方括號中的內(nèi)容可以省略。

      【旗標(biāo)】

      旗標(biāo)有以下幾種:

      空格:對于數(shù)值類型的正數(shù),保留一個空白的符號位(其它用法在動詞部分說明)。

      0 :用 0 進行寬度填充而不用空格,對于數(shù)值類型,符號將被移到所有 0 的前面。

      其中 "0" 和 "-" 不能同時使用,優(yōu)先使用 "-" 而忽略 "0"。

      【寬度和精度】

      “寬度”和“精度”都可以寫成以下三種形式:

      數(shù)值 | * | arg索引*

      其中“數(shù)值”表示使用指定的數(shù)值作為寬度值或精度值,“ ”表示使用當(dāng)前正在處理的 arg 的值作為寬度值或精度值,如果這樣的話,要格式化的 arg 將自動跳轉(zhuǎn)到下一個。“arg索引 ”表示使用指定 arg 的值作為寬度值或精度值,如果這樣的話,要格式化的 arg 將自動跳轉(zhuǎn)到指定 arg 的下一個。

      寬度值:用于設(shè)置最小寬度。

      精度值:對于浮點型,用于控制小數(shù)位數(shù),對于字符串或字節(jié)數(shù)組,用于控制字符數(shù)量(不是字節(jié)數(shù)量)。

      對于浮點型而言,動詞 g/G 的精度值比較特殊,在適當(dāng)?shù)那闆r下,g/G 會設(shè)置總有效數(shù)字,而不是小數(shù)位數(shù)。

      【arg 索引】

      “arg索引”由中括號和 arg 序號組成(就像上面示例中的 [3]),用于指定當(dāng)前要處理的 arg 的序號,序號從 1 開始:

      '[' + arg序號 + ']'

      【動詞】

      “動詞”不能省略,不同的數(shù)據(jù)類型支持的動詞不一樣。

      [通用動詞]

      v:默認格式,不同類型的默認格式如下:

      布爾型:t

      整 型:d

      浮點型:g

      復(fù)數(shù)型:g

      字符串:s

      通 道:p

      指 針:p

      無符號整型:x

      T:輸出 arg 的類型而不是值(使用 Go 語法格式)。

      [布爾型]

      t:輸出 true 或 false 字符串。

      [整型]

      b/o/d:輸出 2/8/10 進制格式

      x/X :輸出 16 進制格式(小寫/大寫)

      c :輸出數(shù)值所表示的 Unicode 字符

      q :輸出數(shù)值所表示的 Unicode 字符(帶單引號)。對于無法顯示的字符,將輸出其轉(zhuǎn)義字符。

      U :輸出 Unicode 碼點(例如 U+1234,等同于字符串 "U+%04X" 的顯示結(jié)果)

      對于 o/x/X:

      如果使用 "#" 旗標(biāo),則會添加前導(dǎo) 0 或 0x。

      對于 U:

      如果使用 "#" 旗標(biāo),則會在 Unicode 碼點后面添加相應(yīng)的 '字符'(前提是該字符必須可顯示)

      [浮點型和復(fù)數(shù)型]

      b :科學(xué)計數(shù)法(以 2 為底)

      e/E:科學(xué)計數(shù)法(以 10 為底,小寫 e/大寫 E)

      f/F:普通小數(shù)格式(兩者無區(qū)別)

      g/G:大指數(shù)(指數(shù) = 6)使用 %e/%E,其它情況使用 %f/%F

      [字符串或字節(jié)切片]

      s :普通字符串

      q :雙引號引起來的 Go 語法字符串

      x/X:十六進制編碼(小寫/大寫,以字節(jié)為元素進行編碼,而不是字符)

      對于 q:

      如果使用了 "+" 旗標(biāo),則將所有非 ASCII 字符都進行轉(zhuǎn)義處理。

      如果使用了 "#" 旗標(biāo),則輸出反引號引起來的字符串(前提是

      字符串中不包含任何制表符以外的控制字符,否則忽略 # 旗標(biāo))

      對于 x/X:

      如果使用了 " " 旗標(biāo),則在每個元素之間添加空格。

      如果使用了 "#" 旗標(biāo),則在十六進制格式之前添加 0x 前綴。

      [指針類型]

      p :帶 0x 前綴的十六進制地址值。

      [符合類型]

      復(fù)合類型將使用不同的格式輸出,格式如下:

      結(jié) 構(gòu) 體:{字段1 字段2 ...}

      數(shù)組或切片:[元素0 元素1 ...]

      映 射:map[鍵1:值1 鍵2:值2 ...]

      指向符合元素的指針:{}, [], map[]

      復(fù)合類型本身沒有動詞,動詞將應(yīng)用到復(fù)合類型的元素上。

      結(jié)構(gòu)體可以使用 "+v" 同時輸出字段名。

      【注意】

      1、如果 arg 是一個反射值,則該 arg 將被它所持有的具體值所取代。

      2、如果 arg 實現(xiàn)了 Formatter 接口,將調(diào)用它的 Format 方法完成格式化。

      3、如果 v 動詞使用了 # 旗標(biāo)(%#v),并且 arg 實現(xiàn)了 GoStringer 接口,將調(diào)用它的 GoString 方法完成格式化。

      如果格式化操作指定了字符串相關(guān)的動詞(比如 %s、%q、%v、%x、%X),接下來的兩條規(guī)則將適用:

      4。如果 arg 實現(xiàn)了 error 接口,將調(diào)用它的 Error 方法完成格式化。

      5。如果 arg 實現(xiàn)了 string 接口,將調(diào)用它的 String 方法完成格式化。

      在實現(xiàn)格式化相關(guān)接口的時候,要避免無限遞歸的情況,比如:

      type X string

      func (x X) String() string {

      return Sprintf("%s", x)

      }

      在格式化之前,要先轉(zhuǎn)換數(shù)據(jù)類型,這樣就可以避免無限遞歸:

      func (x X) String() string {

      return Sprintf("%s", string(x))

      }

      無限遞歸也可能發(fā)生在自引用數(shù)據(jù)類型上面,比如一個切片的元素引用了切片自身。這種情況比較罕見,比如:

      a := make([]interface{}, 1)

      a[0] = a

      fmt.Println(a)

      【格式化輸入】

      // 格式化輸入:從輸入端讀取字符串(以空白分隔的值的序列),

      // 并解析為具體的值存入相應(yīng)的 arg 中,arg 必須是變量地址。

      // 字符串中的連續(xù)空白視為單個空白,換行符根據(jù)不同情況處理。

      // \r\n 被當(dāng)做 \n 處理。

      // 以動詞 v 解析字符串,換行視為空白

      Scan(arg列表)

      // 以動詞 v 解析字符串,換行結(jié)束解析

      Scanln(arg列表)

      // 根據(jù)格式字符串中指定的格式解析字符串

      // 格式字符串中的換行符必須和輸入端的換行符相匹配。

      Scanf(格式字符串, arg列表)

      // Scan 類函數(shù)會返回已處理的 arg 數(shù)量和遇到的錯誤信息。

      【格式字符串】

      格式字符串類似于 Printf 中的格式字符串,但下面的動詞和旗標(biāo)例外:

      p :無效

      T :無效

      e/E/f/F/g/G:功能相同,都是掃描浮點數(shù)或復(fù)數(shù)

      s/v :對字符串而言,掃描一個被空白分隔的子串

      對于整型 arg 而言,v 動詞可以掃描帶有前導(dǎo) 0 或 0x 的八進制或十六進制數(shù)值。

      寬度被用來指定最大掃描寬度(不會跨越空格),精度不被支持。

      如果 arg 實現(xiàn)了 Scanner 接口,將調(diào)用它的 Scan 方法掃描相應(yīng)數(shù)據(jù)。只有基礎(chǔ)類型和實現(xiàn)了 Scanner 接口的類型可以使用 Scan 類方法進行掃描。

      【注意】

      連續(xù)調(diào)用 FScan 可能會丟失數(shù)據(jù),因為 FScan 中使用了 UnreadRune 對讀取的數(shù)據(jù)進行撤銷,而參數(shù) io.Reader 只有 Read 方法,不支持撤銷。比如:

      go語言 file.WriteString(str + "\n"),不能寫入“\n”換行符,結(jié)果只一行,怎么輸出換行的文件?

      換行符 \n 在 Windows 記事本不會顯示,用 Notepad2、Notepad++、UltraEdit 等打開就能看到,或者用 \r\n

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

      作為C語言家族的一員,go和c一樣也支持結(jié)構(gòu)體。可以類比于java的一個POJO。

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

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

      這里要引入一個底層類型的概念。

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

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

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

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

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

      類型別名表示新類型和原類型完全等價,實際上就是同一種類型。只不過名字不同而已。

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

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

      還有一個點提一下

      如果換行來寫

      Age: 66,后面這個都好不能省略

      還有一個點,觀察e3的賦值

      new返回的是一個指針。然后指針可以直接點號賦值。這說明go默認進行了取值操作

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

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

      有什么用呢?

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

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

      這種形式需要說的是幾個語法糖。

      語法糖1:

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

      這種方式稱為 嵌入字段

      語法糖2:

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

      可以省略嵌入的Reader字段,而直接訪問ReaderName

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

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

      tag的格式為反單引號

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

      具體的作用還要看使用的場景。

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

      Go語言輸出打印--排坑

      一.幾種公共方法

      1)Print:???輸出到控制臺(不接受任何格式化,它等價于對每一個操作數(shù)都應(yīng)用?%v)

      print 在golang中?是屬于輸出到標(biāo)準(zhǔn)錯誤流中并打印,官方不建議寫程序時候用它。可以再debug時候用

      2)Println:?輸出到控制臺并換行

      3)Printf :?只可以打印出格式化的字符串。只可以直接輸出字符串類型的變量(不可以輸出整形變量和整形等)

      4)Sprintf:格式化并返回一個字符串而不帶任何輸出

      5)Fprintf:來格式化并輸出到 io.Writers 而不是 os.Stdout

      二.帶占位符輸出--網(wǎng)址:? ??

      和python差不多的道理,這里簡單補充

      v ????值的默認格式

      %+v???添加字段名(如結(jié)構(gòu)體)

      %#v ?相應(yīng)值的Go語法表示?

      %T????相應(yīng)值的類型的Go語法表示?

      %%????字面上的百分號,并非值的占位符

      %c?????相應(yīng)Unicode碼點所表示的字符?

      %x?????十六進制表示,字母形式為小寫 a-f

      %X?????十六進制表示,字母形式為大寫 A-F

      %U???? Unicode格式:U+1234,等同于?"U+%04X"

      go的uint64轉(zhuǎn)換成java的哪種類型

      Golang 和java/c不同,Go在不同類型的變量之間賦值時需要顯式轉(zhuǎn)換。也就是說Golang中數(shù)據(jù)類型不能自動轉(zhuǎn)換。

      基本語法

      表達式T(v))將值v 轉(zhuǎn)換為類型T

      T∶就是數(shù)據(jù)類型,比如int32,int64,float32等等

      v∶ 就是需要轉(zhuǎn)換的變量

      var i int = 100

      var b float64 = float64(i)

      var c int64 = int64(b)

      fmt.Printf("b=%f,c=%d",b,c)

      b=100.000000,c=100

      登錄后復(fù)制

      細節(jié)說明

      1)Go中,數(shù)據(jù)類型的轉(zhuǎn)換可以是從表示范圍小-表示范圍大,也可以范圍大一范圍小

      2) 被轉(zhuǎn)換的是變量存儲的數(shù)據(jù)(即值),變量本身的數(shù)據(jù)類型并沒有變化!

      3) 在轉(zhuǎn)換中,比如將 int64 轉(zhuǎn)成int8,編譯時不會報錯,只是轉(zhuǎn)換的結(jié)果是按溢出處理,和

      我們希望的結(jié)果不一樣。(在轉(zhuǎn)換的時候需要注意范圍)

      var a int64 = 10000000

      var b int8 = int8(a)

      fmt.Printf("%d",b)

      -128

      登錄后復(fù)制

      可以看到在轉(zhuǎn)換的時候,一定要保證轉(zhuǎn)換大數(shù)據(jù)要是對方可以接受的范圍。

      n1類型是int32,那么?20整個就是int32類型,可是n2是int64,這樣就會編譯錯誤。

      題二n4是12 + 127溢出超過了范圍,運行的時候按照溢出處理。n3是直接編譯不通過,128已經(jīng)超過了int8類型的范圍

      基本數(shù)據(jù)類型和string的轉(zhuǎn)換

      字符串格式化

      Go語言用于控制文本輸出常用的標(biāo)準(zhǔn)庫是fmt

      fmt中主要用于輸出的函數(shù)有:

      Print: 輸出到控制臺,不接受任何格式化操作

      Println: 輸出到控制臺并換行

      Printf : 只可以打印出格式化的字符串。只可以直接輸出字符串類型的變量(不可以輸出別的類型)

      Sprintf:格式化并返回一個字符串而不帶任何輸出

      Fprintf:來格式化并輸出到 io.Writers 而不是 os.Stdout

      整數(shù)類型

      格 式 描 述

      %b 整型以二進制方式顯示

      %o 整型以八進制方式顯示

      %d 整型以十進制方式顯示

      %x 整型以十六進制方式顯示

      %X 整型以十六進制、字母大寫方式顯示

      %c 相應(yīng)Unicode碼點所表示的字符

      %U Unicode 字符, Unicode格式:123,等同于 "U+007B"

      浮點數(shù)

      格 式 描 述

      %e 科學(xué)計數(shù)法,例如 -1234.456e+78

      %E 科學(xué)計數(shù)法,例如 -1234.456E+78

      %f 有小數(shù)點而無指數(shù),例如 123.456

      %g 根據(jù)情況選擇 %e 或 %f 以產(chǎn)生更緊湊的(無末尾的0)輸出

      %G 根據(jù)情況選擇 %E 或 %f 以產(chǎn)生更緊湊的(無末尾的0)輸出

      布爾

      格 式 描 述

      %t true 或 false

      字符串

      格 式 描 述

      %s 字符串或切片的無解譯字節(jié)

      %q 雙引號圍繞的字符串,由Go語法安全地轉(zhuǎn)義

      %x 十六進制,小寫字母,每字節(jié)兩個字符

      %X 十六進制,大寫字母,每字節(jié)兩個字符

      指針

      格 式 描 述

      %p 十六進制表示,前綴 0x

      var num1 int64 = 99

      var num2 float64 = 23.99

      var b bool = true

      var mychar byte = 'h'

      str1 := fmt.Sprintf("%d",num1)

      str2 := fmt.Sprintf("%f",num2)

      bool1 := fmt.Sprintf("%t",b)

      mychar1 := fmt.Sprintf("%c",mychar)

      fmt.Printf("%T,%T,%T,str1=%v,str2=%v,bool1=%v,mychar1=%v",str1,bool1,str2,str1,str2,bool1,mychar1)

      string,string,string,string,str1=99,str2=23.990000,bool1=true,mychar1=h

      登錄后復(fù)制

      ?

      使用strconv包 基本類型 - string類型

      num1 := 99

      str1 := strconv.FormatInt(int64(num1),10)

      fmt.Printf("%T,%v",str1,str1)

      num2 := 99.99

      str2 := strconv.FormatFloat(num2,'f',10,64)

      fmt.Printf("%T,%v\n",str2,str2)

      登錄后復(fù)制

      strconv包提供了字符串與簡單數(shù)據(jù)類型之間的類型轉(zhuǎn)換功能,可以將簡單類型轉(zhuǎn)換為字符串,也可以將字符串轉(zhuǎn)換為其它簡單類型

      string和int轉(zhuǎn)換

      int轉(zhuǎn)string的方法是: Itoa()

      str := strconv.Itoa(100)

      fmt.Printf("type %v, value: %s\n", reflect.TypeOf(str), str)

      登錄后復(fù)制

      2.string轉(zhuǎn)int的方法是:

      i, err := strconv.Atoi("100")

      fmt.Printf("type %v, value: %d, err: %v\n", reflect.TypeOf(i), i, err)

      登錄后復(fù)制

      并不是所有string都能轉(zhuǎn)化為int, 所以可能會報錯:

      i, err := strconv.Atoi("100x")

      fmt.Printf("type %v, value: %d, err: %v\n", reflect.TypeOf(i), i, err)

      登錄后復(fù)制

      使用strconv包 string轉(zhuǎn)其他類型

      strconv包提供的Parse類函數(shù)用于將字符串轉(zhuǎn)化為給定類型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint() 由于字符串轉(zhuǎn)換為其它類型可能會失敗,所以這些函數(shù)都有兩個返回值,第一個返回值保存轉(zhuǎn)換后的值,第二個返回值判斷是否轉(zhuǎn)換成功。

      1.轉(zhuǎn)bool

      b, err := strconv.ParseBool("true")

      fmt.Println(b, err)

      登錄后復(fù)制

      2.轉(zhuǎn)float

      f1, err := strconv.ParseFloat("3.1", 32)

      fmt.Println(f1, err)

      f2, err := strconv.ParseFloat("3.1", 64)

      fmt.Println(f2, err)

      登錄后復(fù)制

      由于浮點數(shù)的小數(shù)部分 并不是所有小數(shù)都能在計算機中精確的表示, 這就造成了浮點數(shù)精度問題, 比如下面

      var n float64 = 0

      for i := 0; i 1000; i++ {

      n += .01

      }

      fmt.Println(n)

      關(guān)于浮點數(shù)精度問題: c計算機不都是0101嗎,你有想過計算機是怎么表示的小數(shù)嗎, 簡單理解就是:

      將其整數(shù)部分與小樹部分分開, 比如5.25

      對于整數(shù)部分 5 ,我們使用"不斷除以2取余數(shù)"的方法,得到 101

      對于小數(shù)部分 .25 ,我們使用"不斷乘以2取整數(shù)"的方法,得到 .01

      聽說有一個包可以解決這個問題: github.com/shopspring/decimal

      3.轉(zhuǎn)int

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

      base: 進制,有效值為0、2-36。當(dāng)base=0的時候,表示根據(jù)string的前綴來判斷以什么進制去解析:0x開頭的以16進制的方式去解析,0開頭的以8進制方式去解析,其它的以10進制方式解析

      bitSize: 多少位,有效值為0、8、16、32、64。當(dāng)bitSize=0的時候,表示轉(zhuǎn)換為int或uint類型。例如bitSize=8表示轉(zhuǎn)換后的值的類型為int8或uint8

      fmt.Println(bInt8(-1)) // 0000 0001(原碼) - 1111 1110(反碼) - 1111 1111

      // Parse 二進制字符串

      i, err := strconv.ParseInt("11111111", 2, 16)

      fmt.Println(i, err)

      // Parse 十進制字符串

      i, err = strconv.ParseInt("255", 10, 16)

      fmt.Println(i, err)

      // Parse 十六進制字符串

      i, err = strconv.ParseInt("4E2D", 16, 16)

      fmt.Println(i, err)

      4.轉(zhuǎn)uint

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

      用法和轉(zhuǎn)int一樣, 只是轉(zhuǎn)換后的數(shù)據(jù)類型是uint64

      u, err := strconv.ParseUint("11111111", 2, 16)

      fmt.Println(u, err)

      u, err = strconv.ParseUint("255", 10, 16)

      fmt.Println(u, err)

      u, err = strconv.ParseUint("4E2D", 16, 16)

      fmt.Println(u, err)

      其他類型轉(zhuǎn)string

      將給定類型格式化為string類型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。

      fmt.Println(strconv.FormatBool(true))

      // 問題又來了

      fmt.Println(strconv.FormatInt(255, 2))

      fmt.Println(strconv.FormatInt(255, 10))

      fmt.Println(strconv.FormatInt(255, 16))

      fmt.Println(strconv.FormatUint(255, 2))

      fmt.Println(strconv.FormatUint(255, 10))

      fmt.Println(strconv.FormatUint(255, 16))

      fmt.Println(strconv.FormatFloat(3.1415, 'E', -1, 64))

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

      bitSize表示f的來源類型(32:float32、64:float64),會據(jù)此進行舍入。

      fmt表示格式:'f'(-ddd.dddd)、'b'(-ddddp±ddd,指數(shù)為二進制)、'e'(-d.dddde±dd,十進制指數(shù))、'E'(-d.ddddE±dd,十進制指數(shù))、'g'(指數(shù)很大時用'e'格式,否則'f'格式)、'G'(指數(shù)很大時用'E'格式,否則'f'格式)。

      prec控制精度(排除指數(shù)部分):對'f'、'e'、'E',它表示小數(shù)點后的數(shù)字個數(shù);對'g'、'G',它控制總的數(shù)字個數(shù)。如果prec 為-1,則代表使用最少數(shù)量的、但又必需的數(shù)字來表示f。

      一行一行讀取文件沒有換行符golang

      一行一行讀取文件沒有換行符golang沒有問題,不影響。由程序?qū)懭氲臉?biāo)準(zhǔn)的日志文件,那么每一條后面都有換行符,文件讀完了還沒有看到換行符,比如自己手動操作了此日志文件,那么就會有io.EOF錯誤,這個錯誤是不必處理了,讀完了就讀完了。


      文章題目:go語言換行 go語言換行根據(jù)系統(tǒng)
      網(wǎng)站鏈接:http://www.ef60e0e.cn/article/dodsisd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        金堂县| 万州区| 凤凰县| 贡嘎县| 东平县| 永仁县| 綦江县| 宜都市| 图木舒克市| 罗源县| 靖远县| 井陉县| 新绛县| 苏尼特左旗| 贡觉县| 景德镇市| 延长县| 普宁市| 广昌县| 阿拉善右旗| 垣曲县| 和田县| 上蔡县| 衡水市| 德兴市| 景洪市| 聂拉木县| 上饶县| 贵南县| 甘肃省| 宝应县| 沿河| 绵竹市| 嘉祥县| 石家庄市| 广平县| 丽水市| 凉山| 会昌县| 英吉沙县| 乐平市|