欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go語言基礎(chǔ)教程之(包、變量和函數(shù))

 更新時(shí)間:2023年07月27日 08:48:51   作者:bvwvd  
這篇文章主要介紹了go語言基礎(chǔ)教程之(包、變量和函數(shù))的相關(guān)資料,需要的朋友可以參考下

go程序由一個(gè)個(gè)不同的包組成,程序的入口是名為main的包,比如我們創(chuàng)建一個(gè)main文件

main.go

package main

import "fmt"

func main(){
    fmt.Println("hello")
}

go要求每一個(gè)go文件的非注釋開頭必須是``` package xxx``,也就是聲明該文件屬于哪個(gè)包

導(dǎo)出方式

首先我們創(chuàng)如下包文件夾:

我的項(xiàng)目 
├─mytool
│ ├─ alg
│ │  ├─ cmp.go
│ │  └─ mod.go
│ └─ mod.go
└─其他文件

這樣,如果我們?cè)?code>main.go里面需要使用cmp.go里面的函數(shù)的話需要添加這樣的語句:

...
import "項(xiàng)目名稱/mytool/alg"
...
    alg.Cmp()
...

其中兩個(gè)語句分別導(dǎo)出了 alg 包,和調(diào)用 alg 包下的 cmp 函數(shù)

分組導(dǎo)入

通常情況下,推薦使用分組導(dǎo)入包,也就是這種寫法:

import(
    "fmt"
    "text/mytool/alg"
)

這是不推薦的寫法,寫起來也不方便:

    import "fmt"
    import "text/mytool/alg"

可導(dǎo)出與不可導(dǎo)出

go的包中支持不可導(dǎo)出函數(shù),就像類中的私有函數(shù),聲明的方式為函數(shù)名首字母是否大小寫

在 cmp.go 文件中添加如下兩個(gè)函數(shù):

func action() {
	fmt.Println("action")
}
func Move(){
    fmt.Printlm("move")
}

其中,只有 Move 函數(shù)是可以被調(diào)用的,而action函數(shù)由于首字母未大小寫不可調(diào)用,因?yàn)樗麤]有被導(dǎo)出

函數(shù)

go 中定義函數(shù)需要使用 func 關(guān)鍵字

參數(shù)

go 的函數(shù)可以沒有參數(shù),也可以有多個(gè)參數(shù),如下:

func novar(){

}
func manyvar(a int, b int){

}

如果參數(shù)類型一致可以只寫最后一個(gè)參數(shù)的類型,如下:

func manyvar(a,b int){

}

返回值

go 函數(shù)如果有返回值需要在參數(shù)后面聲明,如下:

func havereturn() int{

}

它將返回一個(gè) int 類型的返回值

返回值也可以有一個(gè)指定的名字,其目的是為了增加代碼的可讀性,如下:

func sum(a, b int) (ans int){
    ans = a + b
    return ans
}

如果一個(gè)函數(shù)十分的長,那么在開始就確定返回值的名字將大大增加可讀性

go 支持函數(shù)返回多個(gè)返回值,如下:

func manyres() (int, error){
    return 1 , nil
}

它分別返回了int和error類型兩個(gè)返回值

變量

go 中的變量使用 var 關(guān)鍵字創(chuàng)建,并且在變量名后加變量類型,如下:

var a int

該代碼創(chuàng)建了一個(gè) int 類型的變量

變量也可以像其他語言一樣通過等于號(hào)賦值和初始化,如下:

var a = 1//這叫初始化

//也可以一次初始化多個(gè)值
var b, c = false, "AMDYES!"

a = 2//這叫賦值

不想寫 var 關(guān)鍵字怎么辦,在函數(shù)里面可以這么寫:

func text(){
    a := 1//這樣也相當(dāng)于創(chuàng)建和初始化變量
}

函數(shù)外是不允許這么寫的,go 中規(guī)定,函數(shù)外的每個(gè)語句必須以關(guān)鍵字作為開頭。

go 中如果初始化沒有明確初始值,統(tǒng)一賦值為 go 中默認(rèn)的零值

go 中的類型轉(zhuǎn)換方式為 T(變量) ,T代表一種變量類型
如下:

var a int = 1
var b = float64(a)

go 的類型推導(dǎo)會(huì)在你聲明變量時(shí)不指定變量類型時(shí)觸發(fā)。它會(huì)根據(jù)右邊表達(dá)的結(jié)果類型來確定變量的類型,如下:

var a int =1
b := a//b的類型推導(dǎo)為int
c := 1//此時(shí)c被推導(dǎo)為int,也就是常數(shù)整型在 go 中為 int 
d := 1.1//此時(shí)d被推導(dǎo)為float64
e := 1 + 1i//此時(shí)為complex128

go 中的常量聲明通過const關(guān)鍵字,如下:

const a int = 1
const b = 1.1//也可以不寫類型讓 go 自動(dòng)推導(dǎo)

但是要注意的是 := 只能聲明出變量,常量無法用這個(gè)來進(jìn)行聲明

到此這篇關(guān)于go語言基礎(chǔ)教程之(包、變量和函數(shù))的文章就介紹到這了,更多相關(guān)go語言 包、變量和函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言基礎(chǔ)之網(wǎng)絡(luò)編程全面教程示例

    Go語言基礎(chǔ)之網(wǎng)絡(luò)編程全面教程示例

    這篇文章主要為大家介紹了Go語言基礎(chǔ)之網(wǎng)絡(luò)編程全面教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go?處理大數(shù)組使用?for?range?和?for?循環(huán)的區(qū)別

    Go?處理大數(shù)組使用?for?range?和?for?循環(huán)的區(qū)別

    這篇文章主要介紹了Go處理大數(shù)組使用for?range和for循環(huán)的區(qū)別,對(duì)于遍歷大數(shù)組而言,for循環(huán)能比for?range循環(huán)更高效與穩(wěn)定,這一點(diǎn)在數(shù)組元素為結(jié)構(gòu)體類型更加明顯,下文具體分析感興趣得小伙伴可以參考一下
    2022-05-05
  • golang croncli 定時(shí)器命令詳解

    golang croncli 定時(shí)器命令詳解

    定時(shí)器是執(zhí)行任務(wù)時(shí)的常用功能,配置系統(tǒng)的定時(shí)任務(wù)太麻煩,所以就想用golang簡單實(shí)現(xiàn)一個(gè)定時(shí)器命令,包括定時(shí)器命令格式、定時(shí)執(zhí)行命令的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Go語言實(shí)現(xiàn)布谷鳥過濾器的方法

    Go語言實(shí)現(xiàn)布谷鳥過濾器的方法

    這篇文章主要介紹了Go語言實(shí)現(xiàn)布谷鳥過濾器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Go語言獲取本機(jī)邏輯CPU數(shù)量的方法

    Go語言獲取本機(jī)邏輯CPU數(shù)量的方法

    這篇文章主要介紹了Go語言獲取本機(jī)邏輯CPU數(shù)量的方法,實(shí)例分析了runtime庫的操作技巧,需要的朋友可以參考下
    2015-03-03
  • Windows下升級(jí)go版本過程詳解

    Windows下升級(jí)go版本過程詳解

    這篇文章主要為大家介紹了Windows下升級(jí)go版本過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • PHP與Go語言之間的通信詳解

    PHP與Go語言之間的通信詳解

    相信大家都知道不同語言之間的通信方式有很多種,這篇文章詳細(xì)的介紹了PHP與Go語言之間如何通信,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • 詳解go語言單鏈表及其常用方法的實(shí)現(xiàn)

    詳解go語言單鏈表及其常用方法的實(shí)現(xiàn)

    這篇文章主要介紹了詳解go語言單鏈表及其常用方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Go語言實(shí)現(xiàn)多協(xié)程文件下載器的過程詳解

    Go語言實(shí)現(xiàn)多協(xié)程文件下載器的過程詳解

    這篇文章主要介紹了Go語言實(shí)現(xiàn)多協(xié)程文件下載器的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-08-08
  • Golang map實(shí)現(xiàn)原理淺析

    Golang map實(shí)現(xiàn)原理淺析

    Go中Map是一個(gè)KV對(duì)集合,下面這篇文章主要給大家介紹了關(guān)于Golang中map探究的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12

最新評(píng)論