初識 go 語言

來源:互聯網
上載者:User

標籤:預設   目錄   qpi   輸出   string   開發   技術分享   記憶   結束   

目錄

  • go簡介
    • 安裝
    • hello world
    • 函數
    • 變數
    • 常量
    • 可見度規則
    • 結束語

前言: 最近組內要試水區塊鏈,初步方案定為使用fabirc來弄,而fabric的智能合約就是用go寫的,藉此機會正好學下go,本文也是從零開始,將go的基本文法,結構體,函數,方法,介面,並發等以小demo的方式進行講解,有的地方會對比java加深記憶

go簡介

go又稱golang 是由Google開發,於2009年11月開源的一種服務端程式設計語言,go 很簡潔,高效,支援並發 ,總之值得一看—— 維基百科

安裝
  • go環境: go官網下載 安裝就是一路next
  • ide: liteIDE官網下載 我用的是 liteIDE ,下載壓縮包之後直接解壓使用,怎麼用就自己學習下很簡單的
hello world

學習每種程式設計語言都是從hello world開始的,本次也是

package mainimport (    "fmt")func main() {    fmt.Println("hello world")}

直接在ide中運行輸出:hello world

一個.go檔案通常會包括

  • 聲明包: package
  • 引入包: import
  • 變數/常量: var /const
  • 函數: func

聲明包
使用 packge 關鍵字來聲明一個包,每個 Go 程式都由包構成的
引入包
使用 import 關鍵字來匯入所需的包,go語言強制規定,匯入的包必須被使用否則編譯不過

import "fmt"import "math"//更簡便的寫法import (    "fmt"    "math")
函數

使用 func 關鍵字來聲明一個函數
常用結構:

    func methodName(var1 int,var2 int)  int{         .....          return xxx      }

注意:與java不同的地方

  • 入參的結構:變數名在前,類型在後,如(var1 int,var2 int)java是類型在前,變數名在後
  • 傳回值:函數的傳回值在參數的後面java中是在方法名之前

一個.go只能聲明一個main函數,否則編譯不過
helloworld demo 的main函數沒有入參也沒有傳回值,所以可以省略

變數

使用 var 聲明一個變數列表,跟函數的參數列表一樣,類型在最後;
var 也是可以定在包內和函數內;
如果定義的變數沒有賦值則預設賦初始值:

  • 數實值型別為 0
  • 布爾類型為 false
  • 字串為 ""
var isfalse boolvar istrue bool = truefunc main() {    var num int    fmt.Println(num, isfalse, istrue)}

定義多個及初始值
如果初始化值已存在,則可以省略類型;變數會從初始值中獲得類型

var isfalse, istrue, x = true, false, "chenmingyu"func main() {    fmt.Println(isfalse, istrue, x)}

當兩個或多個變數類型相同時,只需要寫最後一個變數的類型,如:x int, y int 可以寫成 x, y int

函數中,簡潔指派陳述式 := 可在類型明確的地方代替 var 聲明,只能在函數內使用,所以函數外只能用var

func main() {    var1 := "mingyu"    fmt.Println("say hello", var1)}
常量

使用const 關鍵字來聲明常量,如:

const word = "hello go"func main() {    fmt.Println(word)}

函數的傳回值
go 語言函數支援返回任意數量的傳回值,如:

func transform(x, y string) (string, string) {    return y, x}func main() {    a, b := transform("say", "hello")    fmt.Println(a, b)}
可見度規則

在go中使用首字母大小寫來決定該常量、變數、結構體、函數、介面是否可以被外部包調用

  • 首字母小寫就相當於java中的 private
  • 首字母大寫就相當於java中的 public
package mainimport (    "fmt"    "math")func main() {    fmt.Println(math.Abs(12))    //小寫報錯 undefined: math.abs    fmt.Println(math.abs(12))}


結束語

初識 go 語言系列

  • [x] 初始 go 語言
  • [ ] 初識 go 語言:文法及類型
  • [ ] 初識 go 語言:方法,介面及並發

注意:本篇文中針對go環境的安裝及ide的安裝提供了網址,下載後可自行安裝,liteIDE的使用可以自行學習很簡單的
學習一門新的程式設計語言。最重要的就是寫,看三遍不如自己碼一遍,所以開始吧
學習網站:https://tour.go-zh.org

關注我的公眾號

初識 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.