中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

GO編程基礎

發布時間:2020-06-10 22:14:57 來源:網絡 閱讀:218 作者:類似簡單 欄目:編程語言
什么是Go?
Go是一門并發支持、垃圾回收的編譯型系統編程語言,旨在創造一門具有在靜態編譯語言的高性能和動態語言的高效開發之間擁有良好平衡點的一門編程語言。

Go的主要特點:

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

-----

Go存在的價值是什么?

[GO 在谷歌:以軟件工程為目的的語言設計請添加鏈接描述](https://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering)

-----

Go命令

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

Go常用命令簡介

go env  獲取Go環境變量

PS C:\Users\scott> go env
set GOARCH=amd64              #系統類型
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 開發目錄
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 :獲取遠程包(需要提前安裝git或hg)
go run: 直接運行程序
go build:測試編譯, 檢查是否有編譯錯誤
go fmt:  格式化源碼
go install :編譯包文件并編譯整個程序
go test:運行測試文件
go doc: 查看文檔

-----
第一個程序:
package main

import "fmt"

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

GO編程基礎


-----

Go導入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
)

導入包的別名

import   bieming "fmt"

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

只能導入使用到的包,未使用到的需要用雙斜線   // 內容   或  //*-----內容-------*//注釋

可見性規則

Go語言中,使用大小寫來決定該常量、變量、類型、接口、結構、或函數是否可以被外部包所調用:

根據約定,
函數名首字母小寫,即為private  私有   外部無法調用
函數名首字母大寫,即為public   公有   外部可以調用

Go基本類型

- 布爾型:bool
    - 長度:1字節
    - 取值范圍: true,false
    - 注意事項:不可以用數字代表true或false

- 整型:int/uint
    -根據運行平臺可能為32或64位

- 8位整型: int8/uint8
    -長度:1字節
    -取值范圍:-128~127/0~255

- 字節型:byte(uint8別名)

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

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

- 浮點型:float32/float64
    - 長度:4/8字節
    - 小數位:精確到7/15位小數位

類型名稱    有無符號    bit數
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位數
uint    No      等于cpu位數
rune    Yes     與 int32 等價
byte    No      與 uint8 等價
uintptr No      -

- 復數類型:complex64/complex128
    - 長度:8/16字節

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

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

- 接口類型:interface
- 函數類型:func

類型零值:

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

變量聲明與賦值:

全局變量使用var聲明

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

   var a int = 1
     var a,b,c,d = 1, 2, 3, 4
     a,b,c,d := 1, 2, 3, 4
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武隆县| 朝阳县| 门源| 怀集县| 芦山县| 日喀则市| 昌吉市| 安康市| 榆中县| 华池县| 共和县| 南昌县| 临桂县| 青州市| 上林县| 宁南县| 长春市| 肃宁县| 锡林郭勒盟| 巴彦县| 阿合奇县| 邛崃市| 子洲县| 合作市| 兴安盟| 达州市| 兴仁县| 塔河县| 清河县| 洱源县| 双江| 贞丰县| 宁陵县| 嵩明县| 灌南县| 昌图县| 江口县| 乌兰浩特市| 左贡县| 行唐县| 扶余县|