欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

關于Go的入門知識

這篇文章主要介紹了關于Go的入門知識,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務安義,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

最近,我開始為我的工作團隊開發(fā)內(nèi)部命令行界面應用程序。我選擇的主要編程語言是PHP,但是我想用可以在任何平臺上運行的語言創(chuàng)建該程序,而不必安裝解釋器。我還希望該應用程序可以獨立包含在一個二進制文件中,以便于分發(fā)和安裝。我下載了Go,對它的易學性和在短時間內(nèi)獲得的生產(chǎn)力感到驚訝。 Go的程序化編程模型真的很適合我們PHP開發(fā)者的思維習慣,我得以快速啟動并運行該應用程序。盡管與PHP有一些明顯的區(qū)別,所以我想與想要學習Go的其他PHP開發(fā)人員分享這些區(qū)別。

MacOS

我使用的是 Mac ,所以通過 Homebrew 安裝 go : brew install go 。如果你的 Mac 還沒有安裝 Homebrew ,我強烈建議你使用。

Windows & Linux

Go 的官網(wǎng)有每種操作系統(tǒng)的下載資源,包括針對 Windows 系統(tǒng)的「下一步下一步」的安裝器。

開始

在 Go 里面,所有工程的源代碼都保存在一個目錄:GOPATH。 GOPATH 默認被設置成家目錄下的 go 下面,比如 /Users/andrewdavis/go。GOPATH 下面有 bin 目錄和 src 目錄。bin 目錄存放你下載的二進制形式的依賴 ,你可以將 bin 目錄添加到你的 PATH 環(huán)境變量里面。你可以在終端編輯文件 .bashrc/.zshrc ,添加 export PATH=$PATH:$(go env GOPATH)/bin。學習 Golang , 你可以在終端運行命令 go get golang.org/x/tour/gotour 下載 Go編程指南, go get 將下載參數(shù)里面指定的第三方依賴的源碼和二進制文件。 現(xiàn)在你可以在終端運行 gotour , 它將啟動一個 web 服務器,并自動打開瀏覽器訪問。

要創(chuàng)建項目,請在GOPATH中的src下創(chuàng)建一個目錄:mkdir -p $GOPATH/src/helloworld。打開這個文件夾cd $GOPATH/src/helloworld并創(chuàng)建一個名為main,touch main.go。在該文件中,輸入以下內(nèi)容:

package main

import "fmt"

func main() {
  fmt.Println("Hello world!")
}

所有Go程序的起點是主程序包中的主要功能。接下來,你可以跑go run main.go運行程序。您還可以運行go install,程序?qū)⒈痪幾g并放在bin目錄中,這樣您就可以在終端中執(zhí)行helloworld,它將運行您的代碼。

與PHP的主要區(qū)別

現(xiàn)在您已經(jīng)設置了一個項目,您可以開始探索不同的go功能。你會注意到的第一件事是Go中不需要分號。語句的結尾由新行檢測。這里還有一些我花了一些時間才理解的差異:

變量

Go 是一門靜態(tài)和強類型語言, 因此每個變量都有分配給它的類型。函數(shù)中的變量是使用 := 賦值的, 該運算符將為變量自動分配類型: name := "Andrew" // name 現(xiàn)在是一個字符串. 要創(chuàng)建一個不設置任何數(shù)據(jù)的變量或者在函數(shù)之外創(chuàng)建變量,您必須使用 var 關鍵字:  var name string。

If 語句

if語句的工作方式和PHP中是相同的, 但是它不需要用括號包住判斷條件. 這種差異最初讓我在閱讀 Go 的代碼時感到困惑. 但是, 我認為這讓代碼更具可讀性.

package main

import "fmt"

func main() {
  value := false
  if value {
    fmt.Println("Value is true")
  } else {
    fmt.Println("Value is false")
  }
}

Packages vs Namespaces

Go 使用術語 package 來為其內(nèi)容創(chuàng)建命名空間。如果你的 Go 代碼中有一個名為 controllers 的文件夾,在這個文件夾下的所有文件都需要以 package controllers 開頭。想要在其他包內(nèi)導入控制器,你需要使用 import "helloworld/controllers"。包內(nèi)任何以大寫字母開頭的名稱都可以用在其他包中。 如果在 controllers 中有一個名為func HelloWorld () 的函數(shù),你可以在 controllers 導入之后使用 controllers.HelloWorld() 來執(zhí)行這個函數(shù)。任何以小寫字母開頭的名稱只能在包內(nèi)使用。不需要 privatepublic 進行聲明。

Strings

在 Go 中,所有字符串必須用雙引號包圍。Go 中的一個單引號值代表一個 rune (一個 Unicode字符)。習慣性的,我會使用單引號聲明字符串,因為這是 PHP 中的常見做法。使用雙引號聲明字符串會需要一段時間調(diào)整。

var name = "Andrew"
var copy = '?'

Structs vs Classes

Go 沒有像 PHP 的 class 語法. 取而代之的, 它使用結構體對自定義數(shù)據(jù)結構建模. 你可以像下面這樣聲明一個結構體:

package main

type Cup struct {
  name string
  color string
  volume int
}

你可以通過在函數(shù)名稱之前引用結構體來為該結構體添加方法。

func (c Cup) nameAndColor() string {
  return c.name + ": " + c.color
}

然后您可以通過在結構體名稱后用大括號傳遞其初始值來實例化一個結構體. 使用 . 來調(diào)用結構體的方法.

func main() {
  c := Cup{name: "Solo", color: "Red", volume: 12}
  c.nameAndColor() // 返回 "Solo: Red"
}

若要創(chuàng)建一個方法修改結構體實例, 該方法必須引用指向結構體的指針:

func (c *Cup) crush() {
  c.volume = 0
}

錯誤

在 Go 中,錯誤并不會視為異常。沒有 trycatch 的機制。作為替代,如果發(fā)生錯誤,需要從函數(shù)內(nèi)返回錯誤。Go 支持一個函數(shù)返回多個值。如果調(diào)用的函數(shù)可能會返回錯誤,你必須檢測這個錯誤是否存在,然后處理這個錯誤。

package main

import "fmt"

func GetName(name string) (string, error) {
  if name == "Bob" {
    return "", fmt.Errorf("Name cannot be Bob")
  }

  return name, nil
}

func main() {
  name, err := GetName("Bob")
  if err != nil {
    fmt.Println("Uh-oh an error has occurred")
  }
}

Final

當然,Go 還有很多東西要學,但是希望這能幫助你更好的開始。學習 Go 的很好的資源有很多。對我最有幫助的是 Go 文檔 和 Go By Example。

感謝你能夠認真閱讀完這篇文章,希望小編分享關于Go的入門知識內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!

分享文章:關于Go的入門知識
本文URL:http://chinadenli.net/article38/joegpp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、品牌網(wǎng)站制作、軟件開發(fā)、企業(yè)網(wǎng)站制作、面包屑導航、電子商務

廣告

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

手機網(wǎng)站建設
国产大屁股喷水在线观看视频 | 国产精品夜色一区二区三区不卡| 91人妻人人精品人人爽| 人妻露脸一区二区三区| 免费黄色一区二区三区| 激情内射日本一区二区三区| 黄片三级免费在线观看| 亚洲欧美日产综合在线网 | 欧美一二三区高清不卡| 美国女大兵激情豪放视频播放| 久草热视频这里只有精品| 老外那个很粗大做起来很爽| 99免费人成看国产片| 少妇人妻无一区二区三区| 亚洲国产欧美精品久久| 国产传媒高清视频在线| 国产免费人成视频尤物| 91欧美亚洲精品在线观看| 久草视频在线视频在线观看| 在线观看视频国产你懂的| 久久精品欧美一区二区三不卡 | 99久久精品一区二区国产| 精品国模一区二区三区欧美| 一区二区三区四区亚洲专区| 福利在线午夜绝顶三级| 日韩一区二区三区18| 久久99午夜福利视频| 91麻豆精品欧美视频| 欧美成人精品国产成人综合| 丰满少妇被粗大猛烈进出视频| 激情内射日本一区二区三区| 很黄很污在线免费观看| 国产精品尹人香蕉综合网| 精品少妇一区二区视频| 欧美亚洲国产日韩一区二区| 国产精品午夜福利免费在线| 99热九九在线中文字幕| 国产精品不卡高清在线观看| 中文字幕一区久久综合| 中文字幕中文字幕在线十八区| 国产一区二区三区草莓av|