使用go語言后的感受


  前兩天我說過為了學習go語言去學習了一遍python,當我完成了python的學習后,昨天中午就去學習了go語言。以下簡稱之為golang。

  我用的操作系統是windows xp,golang對xp還提供支持,但是我在學習python3時,3.5版本的python已經不給xp提供支持了。我在http://gobyexample.com學習了golang的相關代碼,我不知道里面的語法全不全。其次,golang的本質是一種靜態類型的語言,但它在編寫時又可以寫成動態類型語言的聲明,這可以說是一次靜態語言的革命。

  下面我來談談我對golang的感受。

  第一,我感覺golang的語法確實像python,使用起來令人感覺舒適,方便快捷。例如:

// 聲明 --類python
a := 10    // a在編譯時刻會被自動轉換成int類型

// 語法  -- 類C
for i := 0; i < 10; i++ {
    // do something here
}

  第二,golang的自由度高、代碼簡潔,例如:

// 聲明一個int類型的變量有3種方法
var v = 10
var v int = 10
v := 10

// 聲明一個常量則有2種方法
const v = 10
const v int = 10

// 循環的用法 -- for就行了
for True {
    // 類似C中的while循環
}
for {
    // 上例的 for True縮寫版
}
for i := 0; i < 10; i++ {
    // 類似C中的for循環
}

 

  第三,我認為golang語言的目的性不強,嚴格的說是一個令人感到亂糟糟的語言,看下列代碼:

 

// golang循環示例
for i := 0; i < 10; i++ {
}

/*
 * 初看到上面的代碼,令我們覺得沒有什么不對的,但是學習之后,才會知道端倪。
 * 問題1、其中的 i++不能改成++i,golang中不支持++i這樣的操作符
 * 問題2、大分號不能另起一行
 * 問題3、若循環中只有一行代碼,"{" 、"}"不能不寫
 */

// golang簡單示 do while循環示例 -- 用for 實現
var i = 0
for {
    // do something there
    if i >= 10 {
        break
    }
    i++
}

/*
 * 與上面的說法一樣,不學時不知道水有多深
 * 問題1、支持i++操作符但是不支持寫成這樣 if i++ > 10
 * 問題2、不如do while循環簡潔、好看
 */

  以上的例子說明了golang又還是一個自由的語言!不僅如此,golang還不能容納多余的語句:

pacakge main

import "fmt"
import "math"

func main() {
    var i int = 9
    var j int = 10
    fmt.Println(i)
}

/*
*  編譯時報錯:imported and not used: "j"
*  imported and not used: "math"
*  除此之外,golang還要變態地與packge xxx開頭,而且main()函數中不能放置任一個參數和不能聲明任何返回值和返回任何的值。
*/

  golang最終給我的感受是一團糟,至此,我認為golang雖然簡潔,但它並不是一門優秀的編程語言。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM