欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go build 通過文件名后綴實現(xiàn)不同平臺的條件編譯操作

 更新時間:2020年12月15日 10:09:15   作者:liuliuzi_hz  
這篇文章主要介紹了go build 通過文件名后綴實現(xiàn)不同平臺的條件編譯操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

go build 可以通過標簽或者文件名的后綴來提供條件編譯,這里說下通過文件名的后綴來提供條件編譯

文件命名約定可以在go build 包里找到詳細的說明,簡單來說,就是源文件包含后綴:_$GOOS.go,那么這個源文件只會在這個平臺下編譯,_$GOARCH.go也是如此。

這兩個后綴可以結(jié)合在一起使用,但是要注意順序:_$GOOS_$GOARCH.go,不能反過來用:_$GOARCH_$GOOS.go

例如下面截圖,這些文件定義了對應不同平臺下是否需要編譯。

補充:Golang: 條件和循環(huán)

條件、循環(huán)要點

1、for, if后面的條件沒有括號

2、if條件里也可以定義變量

3、沒有while

4、switch不需要break,也可以直接switch多個條件

1. branch.go:

package main
import (
 "io/ioutil"
 "fmt"
)
// switch會自動break,除非使用fallthrough;可以swich多條件;panic()報錯讓程序終止
func grade(score int) string {
 g := ""
 switch {
 case score < 0 || score > 100:
  panic(fmt.Sprintf("Wrong score: %d", score))
 case score < 60:
  g = "F"
 case score < 80:
  g = "C"
 case score < 90:
  g = "B"
 case score <= 100:
  g = "A"
 //default:
 // panic(fmt.Sprintf("Wrong score: %d", score))
 }
 return g
}
func readFile(filename string) {
 contents, err := ioutil.ReadFile(filename)
 if err != nil {
  fmt.Println(err)
 } else {
  fmt.Printf("%s\n", contents)
 }
 // if的條件里可以賦值,其賦值的變量作用域就在if的block中
 if contents, err := ioutil.ReadFile(filename); err != nil {
  fmt.Println(err)
 } else {
  fmt.Printf("%s\n", contents)
 }
}
func main() {
 const filename = "abc.txt"
 readFile(filename)
 fmt.Println()
 fmt.Println(
  grade(0),
  grade(56),
  grade(82),
  grade(100),
  //grade(101), // 中斷報錯
  )
}

輸出:

abcde
12345
hello
world
abcde
12345
hello
world
F F B A

2. loop.go:

package main
import (
 "fmt"
 "strconv"
 "os"
 "bufio"
)
// 十進制轉(zhuǎn)二進制,for中省略初始條件
func convertToBin(n int) string {
 result := ""
 for ; n>0; n /= 2 {
  lsb := n % 2
  result = strconv.Itoa(lsb) + result
 }
 return result
}
// 一行行讀文件,for中省略初始條件,相當于while
func printFile(filename string) {
 file, err := os.Open(filename)
 if err != nil {
  panic(err)
 }
 scanner := bufio.NewScanner(file)
 for scanner.Scan() {
  fmt.Println(scanner.Text())
 }
}
// 死循環(huán),不要while了
func forever() {
 for {
  fmt.Println("abc")
 }
}
func main() {
 fmt.Println(
  convertToBin(5), // 101
  convertToBin(13), // 1101
  convertToBin(72387885),
  convertToBin(0),
  )
 printFile("abc.txt")
 //forever()
}

輸出:

101 1101 100010100001000110100101101 
abcde
12345
hello
world

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang中的sync.WaitGroup用法實例

    Golang中的sync.WaitGroup用法實例

    這篇文章主要介紹了Golang中的sync.WaitGroup用法實例,WaitGroup的用途,它能夠一直等到所有的goroutine執(zhí)行完成,并且阻塞主線程的執(zhí)行,直到所有的goroutine執(zhí)行完成,需要的朋友可以參考下
    2015-07-07
  • Golang實現(xiàn)將中文轉(zhuǎn)化為拼音

    Golang實現(xiàn)將中文轉(zhuǎn)化為拼音

    這篇文章主要為大家詳細介紹了如何通過Golang實現(xiàn)將中文轉(zhuǎn)化為拼音功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-02-02
  • Windows下使用go語言寫程序安裝配置實例

    Windows下使用go語言寫程序安裝配置實例

    這篇文章主要介紹了Windows下使用go語言寫程序安裝配置實例,本文講解了安裝go語言、寫go代碼、生成可執(zhí)行文件、批量生成可執(zhí)行文件等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Go語言使用GORM操作數(shù)據(jù)庫使用指南

    Go語言使用GORM操作數(shù)據(jù)庫使用指南

    GORM(全稱為Go?Object?Relational?Mapping)是一個在Go語言中使用的輕量級的對象關(guān)系映射(ORM)庫,本文主要為大家介紹了GORM操作數(shù)據(jù)庫具體方法,需要的可以參考一下
    2023-05-05
  • 詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解

    詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解

    這篇文章主要為大家介紹了詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Go語言kube-scheduler深度剖析與開發(fā)之pod調(diào)度

    Go語言kube-scheduler深度剖析與開發(fā)之pod調(diào)度

    這篇文章主要為大家介紹了Go語言kube-scheduler深度剖析與開發(fā),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 幾個小技巧幫你實現(xiàn)Golang永久阻塞

    幾個小技巧幫你實現(xiàn)Golang永久阻塞

    Go 的運行時的當前設計,假定程序員自己負責檢測何時終止一個 goroutine 以及何時終止該程序。有時候我們需要的是使程序阻塞在這一行,本文就來詳細的介紹一下,感興趣的可以了解一下
    2021-12-12
  • Go語言線程安全之互斥鎖與讀寫鎖

    Go語言線程安全之互斥鎖與讀寫鎖

    這篇文章主要介紹了Go語言線程安全之互斥鎖與讀寫鎖,互斥鎖是為了并發(fā)的安全,在多個goroutine共同工作的時候,對于共享的數(shù)據(jù)十分不安全,而讀寫鎖效率革命,使用鎖的時候,安全與效率往往需要互相轉(zhuǎn)換,下文詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • golang如何讓string轉(zhuǎn)int64

    golang如何讓string轉(zhuǎn)int64

    這篇文章主要介紹了golang如何讓string轉(zhuǎn)int64問題,
    2024-02-02
  • 使用golang-unsafe包的注意事項及說明

    使用golang-unsafe包的注意事項及說明

    這篇文章主要介紹了使用golang-unsafe包的注意事項及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論