溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用GO語言進行開發(fā)

發(fā)布時間:2021-11-20 16:00:34 來源:億速云 閱讀:145 作者:小新 欄目:移動開發(fā)

小編給大家分享一下如何使用GO語言進行開發(fā),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

先來個hello world!

// godemo1
/*
    Author by zhangpeng
*/
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello World")
}

運行結(jié)果:

C:/Go/bin/go.exe run godemo1.go [E:/GoTest]
Hello World
成功: 進程退出代碼 0.

  哇擦雷,代碼里竟然沒有分號!其實,和C一樣,Go的正式的語法使用分號來終止語句。和C不同的是,這些分號由詞法分析器在掃描源代碼過程中使用簡單的規(guī)則自動插入分號,因此輸入源代碼多數(shù)時候就不需要分號了

規(guī)則是這樣的:如果在一個新行前方的最后一個標(biāo)記是一個標(biāo)識符(包括像intfloat64這樣的單詞)、一個基本的如數(shù)值這樣的文字、或以下標(biāo)記中的一個時,會自動插入分號:

break continue fallthrough return ++ -- ) }

通常Go程序僅在for循環(huán)語句中使用分號,以此來分開初始化器、條件和增量單元。如果你在一行中寫多個語句,也需要用分號分開。

注意無論任何時候,你都不應(yīng)該將一個控制結(jié)構(gòu)((iffor、switchselect)的左大括號放在下一行。如果這樣做,將會在大括號的前方插入一個分號,這可能導(dǎo)致出現(xiàn)不想要的結(jié)果。

Go中的類型可以分類如下:

編號類型和說明
1布爾類型 - 它們是布爾類型,由兩個預(yù)定義常量組成:(a)true(b)false
2數(shù)字類型 - 它們是算術(shù)類型,在整個程序中表示:a)整數(shù)類型或 b)浮點值。
3字符串類型 - 字符串類型表示字符串值的集合。它的值是一個字節(jié)序列。 字符串是不可變的類型,一旦創(chuàng)建后,就不可能改變字符串的內(nèi)容。預(yù)先聲明的字符串類型是string
4派生類型: - 包括(a)指針類型,(b)數(shù)組類型,(c)結(jié)構(gòu)類型,(d)聯(lián)合類型和(e)函數(shù)類型(f)切片類型(g)函數(shù)類型(h)接口類型(i) 類型

數(shù)組類型和結(jié)構(gòu)類型統(tǒng)稱為聚合類型。函數(shù)的類型指定具有相同參數(shù)和結(jié)果類型的所有函數(shù)的集合。我們將在下一節(jié)中看到基本類型,而其他類型將在后續(xù)章節(jié)中介紹。

預(yù)定義與體系結(jié)構(gòu)無關(guān)的整數(shù)類型是:

編號類型和說明
1uint8 - 無符號8位整數(shù)(0到255)
2uint16 - 無符號16位整數(shù)(0到65535)
3uint32 - 無符號32位整數(shù)(0至4294967295)
4uint64 - 無符號64位整數(shù)(0至18446744073709551615)
5int8 - 帶符號的8位整數(shù)(-128到127)
6int16 - 帶符號的16位整數(shù)(-32768到32767)
7int32 - 帶符號的32位整數(shù)(-2147483648至2147483647)
8int64 - 帶符號的64位整數(shù)(-9223372036854775808至9223372036854775807)

浮點類型

預(yù)定義的與體系結(jié)構(gòu)無關(guān)的浮點類型是:

編號類型和說明
1float32 - IEEE-754 32位浮點數(shù)
2float64 - IEEE-754 64位浮點數(shù)
3complex64 - 復(fù)數(shù)帶有float32實部和虛部
4complex128 - 復(fù)數(shù)帶有float64實部和虛部

n位整數(shù)的值是n位,并且使用二進制補碼算術(shù)運算來表示。

其他數(shù)字類型

還有一組具有特定大小的數(shù)字類型:

編號類型和說明
1byte - 與uint8相同
2rune - 與int32相同
3uint - 32或64位
4int - 與uint大小相同
5uintptr - 無符號整數(shù),用于存儲指針值的未解釋位

變量和常量

變量的聲明很像 javascript,使用 var關(guān)鍵字。

//聲明初始化一個變量
var  x int = 888
var str string = "hello world"
//聲明初始化多個變量
var  i, j, k int = 1, 2, 3
 
//不用指明類型,通過初始化值來推導(dǎo)
var b = false//bool型

還有一種定義變量的方式

x := 888 //相當(dāng)于 var x int = 888

常量很簡單,使用const關(guān)鍵字:

const s string = "hello world"
const pi float32 = 3.1415926


數(shù)組

func main() {
    var a [5]int
    fmt.Println("array a:", a)
 
    a[1] = 10
    a[3] = 30
    fmt.Println("fangwifi:", a)
 
    fmt.Println("len:", len(a))
 
    b := [5]int{1, 2, 3, 4, 5}
    fmt.Println("init:", b)
 
    var c [2][3]int
    for i := 0; i < 2; i++ {
        for j := 0; j < 3; j++ {
            c[i][j] = i + j
        }
    }
    fmt.Println("2d: ", c)
}

運行結(jié)果:

array a: [0 0 0 0 0]
fangwifi: [0 10 0 30 0]
len: 5
init: [1 2 3 4 5]
2d:  [[0 1 2] [1 2 3]]

數(shù)組的切片操作

a := [5]int{1, 2, 3, 4, 5}
b := a[2:4] // a[2] 和 a[3],但不包括a[4]
fmt.Println(b)
b = a[:4] // 從 a[0]到a[4],但不包括a[4]
fmt.Println(b)
b = a[2:] // 從 a[2]到a[4],且包括a[2]
fmt.Println(b)

if語句
分支循環(huán)語句

注意:if 語句沒有圓括號,而必需要有花括號

//if 語句
if x % 2 == 0 {
    //do anything
}
//if - else
if x % 2 == 0 {
    //偶數(shù)...
} else {
    //奇數(shù)...
}
 
//多分支
if num < 0 {
    //負(fù)數(shù)
} else if num == 0 {
    //零
} else {
    //正數(shù)
}


注意:switch語句沒有break,還可以使用逗號case多個值switch 語句

switch i {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    case 3:
        fmt.Println("three")
    case 4,5,6:
        fmt.Println("four, five, six")
    default:
        fmt.Println("invalid value!")
}

前面你已見過了,下面再來看看for的三種形式:(注意:Go語言中沒有while)for 語句

//經(jīng)典的for語句 init; condition; post
for i := 0; i<10; i++{
     fmt.Println(i)
}
 
//精簡的for語句 condition
i := 1
for i<10 {
    fmt.Println(i)
    i++
}
 
//死循環(huán)的for語句 相當(dāng)于for(;;)
i :=1
for {
    if i>10 {
        break
    }
    i++
}

看完了這篇文章,相信你對“如何使用GO語言進行開發(fā)”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI