數據結構和算法(Golang實現)(1)簡單入門Golang-前言

數據結構和算法在計算機科學裏,有很是重要的地位。此係列文章嘗試使用 Golang 編程語言來實現各類數據結構和算法,而且適當進行算法分析。git

咱們會先簡單學習一下Golang,而後進入計算機程序世界的第一個大門。github

簡單入門Golang

咱們只學Golang語言的一個子集,足以開展接下來數據結構和算法的實現便可。golang

1、前言

Golang語言是谷歌Google公司在2007年啓動,並在2009年正式發佈並開源的高級編程語言。開源地址:https://github.com/golang/go,官網地址:https://golang.org算法

Golang語言語法簡單,支持多平臺交叉編譯(Linux/Mac/Windows),支持內存自動GC(垃圾回收),支持嵌C/C++開發,而且實現了語法層面的線程調度,開發多線程程序十分方便。語法很像C/Python/JavaScript等高級編程語言。編程

設計這門語言的設計者有如下幾位:segmentfault

  1. Ken Thompson:在貝爾實驗室與Dennis M. Ritche發明了C語言和Unix操做系統,與Rob Pike發明了UTF-8編碼,圖靈獎得主。
  2. Rob Pike:也參與開發了Unix操做系統,UTF-8編碼發明者之一。
  3. Robert Griesemer:參與過V8 JavaScript引擎和Java HotSpot虛擬機的研發。

前兩位比較知名,如今都已經退休了,其餘人有興趣能夠谷歌一下。數組

2、安裝並簡單使用

安裝Golang:https://golang.org/dl:Windows 操做系統點擊msi按提示安裝,Mac 操做系統能夠使用brew install golang安裝。數據結構

打開命令行終端輸入:多線程

go version

顯示如下結果即爲成功:併發

go version go1.13 darwin/amd64

在任一文件夾下新建一個文件main.goGolang語言編寫的程序文件後綴必須都爲.go):

package main

import (
    "fmt"
    "time"
)

func init() {
    fmt.Println("init will be before hello world")
}

func main() {
    fmt.Println("hello world")
    fmt.Println("today times:" + time.Now().String())
}

打開命令行終端進行編譯:

go build main.go

編譯後會在本地文件夾下生成一個二進制文件:main或者main.exe(Windows系統)。

執行二進制:

./main

將會打印出如下結果:

init will be before hello world
hello world
today times:2019-12-09 13:14:14.383118 +0800 CST m=+0.000199077

3、如何學習一門語言

每學一門編程語言,都離不開學習它的語言特徵:

  1. 支持哪些基本數據類型,如整數,浮點數,布爾值,字符串,支持哪些高級數據類型,如數組,結構體等。
  2. if判斷和while循環語句是怎樣的,是否有switch或者goto等語句。
  3. 語言函數的定義是怎樣的,如何傳遞函數參數,有沒有面向對象的語言特徵等。
  4. package包管理是怎樣的,如何管理一個工程,官方提供哪些標準庫,如時間處理,字符串處理,HTTP 庫,加密庫等。
  5. 有沒有特殊的語言特徵,其餘語言沒有的,好比某些語法糖。

系列文章入口

我是陳星星,歡迎閱讀我親自寫的 數據結構和算法(Golang實現),文章首發於 閱讀更友好的GitBook

相關文章
相關標籤/搜索