溫馨提示×

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

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

GO編程基礎(chǔ)

發(fā)布時(shí)間:2020-06-10 22:14:57 來(lái)源:網(wǎng)絡(luò) 閱讀:217 作者:類似簡(jiǎn)單 欄目:編程語(yǔ)言
什么是Go?
Go是一門(mén)并發(fā)支持、垃圾回收的編譯型系統(tǒng)編程語(yǔ)言,旨在創(chuàng)造一門(mén)具有在靜態(tài)編譯語(yǔ)言的高性能和動(dòng)態(tài)語(yǔ)言的高效開(kāi)發(fā)之間擁有良好平衡點(diǎn)的一門(mén)編程語(yǔ)言。

Go的主要特點(diǎn):

類型安全和內(nèi)存安全
以非常直觀和極低代價(jià)的方案實(shí)現(xiàn)高并發(fā)
高效的垃圾回收機(jī)制
快速編譯(同時(shí)解決C語(yǔ)言中頭文件太多的問(wèn)題)
為多核計(jì)算機(jī)×××能提升中的方案
UTF-8編碼支持

-----

Go存在的價(jià)值是什么?

[GO 在谷歌:以軟件工程為目的的語(yǔ)言設(shè)計(jì)請(qǐng)?zhí)砑渔溄用枋鯹(https://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering)

-----

Go命令

在命令行或終端輸入go 即可查看所有支持的命令

Go常用命令簡(jiǎn)介

go env  獲取Go環(huán)境變量

PS C:\Users\scott> go env
set GOARCH=amd64              #系統(tǒng)類型
set GOBIN=C:\Users\scott\go\bin                                                   # 編譯后生成的bin目錄
set GOCACHE=C:\Users\scott\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\scott\go                                                 #Go 開(kāi)發(fā)目錄
set GOPROXY=
set GORACE=
set GOROOT=D:\Applications\Go                                              #Go安裝目錄
set GOTMPDIR=
set GOTOOLDIR=D:\Applications\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:
\Users\scott\AppData\Local\Temp\go-build389094662=/tmp/go-build -gno-record-gcc-switches

go get :獲取遠(yuǎn)程包(需要提前安裝git或hg)
go run: 直接運(yùn)行程序
go build:測(cè)試編譯, 檢查是否有編譯錯(cuò)誤
go fmt:  格式化源碼
go install :編譯包文件并編譯整個(gè)程序
go test:運(yùn)行測(cè)試文件
go doc: 查看文檔

-----
第一個(gè)程序:
package main

import "fmt"

func main(){
    fmt.Println("Hello world! 你好,世界!")
}

GO編程基礎(chǔ)


-----

Go導(dǎo)入package格式

import "fmt"
import "os"
import "time"
import "io"

或

import (
    "fmt"
    "os"
    "time"
    "io"
)

同理

//常量定義
const(
    PI = 3.14
    const1 = "STRING"
    const2 = 2
    const3 = 3
)
//全局變量
var(
    name = "gopher"
    name1 = "1"
    name2 = 2
    name3 = 3
)

//一般類型聲明
type(
    newType int
    type1   float32
    type2   string
    type3   byte
)

導(dǎo)入包的別名

import   bieming "fmt"

import   . "fmt"       (前面有一點(diǎn),代指省略,有這功能,但不建議省用法)

只能導(dǎo)入使用到的包,未使用到的需要用雙斜線   // 內(nèi)容   或  //*-----內(nèi)容-------*//注釋

可見(jiàn)性規(guī)則

Go語(yǔ)言中,使用大小寫(xiě)來(lái)決定該常量、變量、類型、接口、結(jié)構(gòu)、或函數(shù)是否可以被外部包所調(diào)用:

根據(jù)約定,
函數(shù)名首字母小寫(xiě),即為private  私有   外部無(wú)法調(diào)用
函數(shù)名首字母大寫(xiě),即為public   公有   外部可以調(diào)用

Go基本類型

- 布爾型:bool
    - 長(zhǎng)度:1字節(jié)
    - 取值范圍: true,false
    - 注意事項(xiàng):不可以用數(shù)字代表true或false

- 整型:int/uint
    -根據(jù)運(yùn)行平臺(tái)可能為32或64位

- 8位整型: int8/uint8
    -長(zhǎng)度:1字節(jié)
    -取值范圍:-128~127/0~255

- 字節(jié)型:byte(uint8別名)

- 16位整型:int16/uint16
    - 長(zhǎng)度:2字節(jié)
    - 取值范圍:-32768~32767/0~65535
- 32位整型:int32(rune)/uint32
    - 長(zhǎng)度:4字節(jié)
    - 取值范圍:(-2147483648 到 2147483647)

- 64位整型:int64/uint64
    - 長(zhǎng)度:8字節(jié)
    - 取值范圍:(-9223372036854775808 到 9223372036854775807)

- 浮點(diǎn)型:float32/float64
    - 長(zhǎng)度:4/8字節(jié)
    - 小數(shù)位:精確到7/15位小數(shù)位

類型名稱    有無(wú)符號(hào)    bit數(shù)
int8    Yes      8
uint8   No       8
uint16  No       16
int16   Yes      16
int32   Yes      32
int64   Yes      64
uint32  No       32
uint64  No       64
int     Yes     等于cpu位數(shù)
uint    No      等于cpu位數(shù)
rune    Yes     與 int32 等價(jià)
byte    No      與 uint8 等價(jià)
uintptr No      -

- 復(fù)數(shù)類型:complex64/complex128
    - 長(zhǎng)度:8/16字節(jié)

- 足夠保存指針的32位或64位整型:uintptr

- 其他類型:
    - array、struct、 string
- 引用類型:
    - slice、map、chan

- 接口類型:interface
- 函數(shù)類型:func

類型零值:

    零值不等于空值,而是當(dāng)變量被聲明為某種類型后的默認(rèn)值,通常情況下值類型默認(rèn)值為0,bool為false,string為空字符串

變量聲明與賦值:

全局變量使用var聲明

局部變量(函數(shù)體)可以使用下面方式:

   var a int = 1
     var a,b,c,d = 1, 2, 3, 4
     a,b,c,d := 1, 2, 3, 4
向AI問(wèn)一下細(xì)節(jié)

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

AI