Go學習筆記:基礎一

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

原文地址:leitwolf.github.io

撰於 2015-02-14

最近在學習Go語言,按照學習指南學的,現把學習過程記錄一下。

這一章學習包、變數和函數。

包定義都是在第一行,如:

package main

匯入別的包則用import,如:

import "fmt"import "math"

也可以這樣:

import (    "fmt"    "math/rand")

如果你引入了一個包,但沒有使用它,是沒法編譯通過的,出錯資訊如下:
imported and not used: "math"
因為Go語言是靜態編譯,引入沒有使用的包會增大最終執行檔案的體積,所以Go強制這樣做。

Go語言提供了很多的標準包,具體可以看看Go庫文檔(中文)。

Go語言編譯運行時(go run xxx.go),該檔案裡必須有main包和main函數才能運行。

Go語言語句結尾都沒有分號;

函數

函數以func關鍵字定義,如下:

func add(x int, y int) int {    return x + y}func swap(x, y string) (string, string) {    return y, x}func split(sum int) (x, y int) {    x = sum * 4 / 9    y = sum - x    return}func main() {    fmt.Println(add(42, 13))    a, b := swap("hello", "world")    fmt.Println(a, b)    fmt.Println(split(17))}
  • 參數的型別宣告是放在變數名後面的。
  • 如果參數類型一樣,除了最後一個要宣告類型,之前的都可以省略。
  • 傳回值的類型放在){之間,如果沒有傳回值,則為空白。
  • 可以返回多個值,這時候返回的類型要用(`)`包含起來。
  • 傳回值可以被命名,return直接返回。
  • 函數main為主函數,一個項目裡只有一個。

變數

變數以var關鍵字定義,型別宣告放在後面,可以賦初始值。

var a intvar b boolvar c, d float64 = 2.5, 5.0

也可以這樣定義:

func main() {    k := 3    c, d, e := false, 1, "hello"}

這個時候變數的類型由右邊給出的值來推斷,但這種形式:=只能在函數內部使用

常量

常量以const關鍵字定義,如:

const Pi = 3.14

常量不能以:=定義。
常量的類型是由右邊的值來推斷。

基本類型

Go語言的基本類型有:

bool // 初始值 falsestring // 初始值為""(Null 字元串)int  int8  int16  int32  int64uint uint8 uint16 uint32 uint64 uintptrbyte // uint8 的別名rune // int32 的別名     // 代表一個Unicode碼float32 float64complex64 complex128

數實值型別的初始值是0

類型轉換,Go中沒有隱型的類型轉換,所有的轉換都需要顯式的轉換,如:

var i int= 42var f float64 = float64(i)

或者:

i := 10f := float64(i)

注釋

Go可以這樣注釋:

/*  這是注釋*/

也可以這樣:

// 這是注釋

好了,這一章就這樣了,先學個基礎。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.