文章出處

學習一門語言,首先肯定是要熟悉他的語法,然后才可以進行編程開發,雖然本人使用過C++,.net等語言,不過對于GO的一些新特性還是需要多多熟悉,否則即使看得懂也寫不出程序來。今天我們就開始我們的GO Hello World!

當我們新建一個GO MODULE,就會看到一個main.go,具體代碼如下所示:

 package main

 import "fmt"


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

這個就是GO的Hello World程序,熟悉.NET程序的都知道,在.NET中以命名空間來區分不同的類型,組織代碼,而在GO中,則使用package的形式來組織代碼。在引用其他包時,如果沒有特殊定義需要帶上包名稱。  

其中import一看就知道,.NET中的using,也可以指定包的別名。也可以省略包名稱,需要使用"_"作為別名。因為每一個包都有一個默認的init函數,有時候引入的時候不調用里面的方法,只想執行init方法可以使用“.”來忽略。

當然每一個應用程序都有一個特定的入口即main,那個方法不返還任何值。聲明方法使用func,在GO中使用結構來定義一個實體,使用type T struct格式。GO也是面向對象的,當然也具備面向對象的一些功能,例如重寫,集成等等。在GO中另一個非常重要的就是接口,GO中的接口只能定義方法,而且只要有結構實現了接口中定義的方法就表明實現了這個接口,這個在開發過程中真的有點不適應。

在GO中大寫字母開頭的為全局對象,開一在包外部調用,小寫的只能在包內部調用。我們再看一下代碼,這樣能夠更好的理解其中的一些用法,代碼如下:

 package main

 import (
     "os"
     "flag"  // command line option parser
 )


 var omitNewline = flag.Bool("n", false, "don't print final newline")


 const (
     Space = " "
     Newline = "\n"
 )


 func main() {
     flag.Parse()   // Scans the arg list and sets up flags
     var s string = ""
     for i := 0; i < flag.NArg(); i++ {
         if i > 0 {
             s += Space
         }
         s += flag.Arg(i)
     }
     if !*omitNewline {
         s += Newline
     }
     os.Stdout.WriteString(s)
 }

在GO中聲明變量和VB有點像,使用var聲明變量,最后加類型,當然也可以使用使用“:=”格式來直接一步到位。聲明常量使用const,枚舉也使用這個,不過枚舉的第一個值需要注明iota,這樣代表下一個會根據第一個進行計算得到常量值。

type ByteSize float64
const (
    _ = iota  // ignore first value by assigning to blank identifier
    KB ByteSize = 1<<(10*iota)
    MB
    GB
    TB
    PB
    EB
    ZB
    YB
)

GO還有一個很大的優點就是函數可以返回多個值,也可以返回指定的值,這是一個相當好用的,不需要像.NET中那樣,寫很多個out。這一篇主要介紹一下GO的基礎知識,下一篇我們將慢慢的進一步解讀GO的編程方法,希望能夠早點適應這種編寫方法,熟悉他的標準庫。  

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()