bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Golang數據類型-函數(六)-創新互聯

函數的定義
func 函數名(形參列表) (返回值類型列表) {
	執行語句......
	return 返回值列表	
}
函數的說明
  1. 形參列表:表示函數的輸入

    創新互聯公司長期為成百上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為天涯企業提供專業的成都網站設計、網站建設,天涯網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發。
  2. 函數中的執行語句:表示為了實現某一功能的代碼塊

  3. return:函數的返回值。函數可以有返回值,也可以沒有。Go語言函數支持多個返回值,這一點是其他語言沒有的:(1)如果返回多個值時,在接收時,希望忽略某個返回值,則使用 _ 符號表示占位忽略(2)如果返回值只有一個,(返回值類型) 可以不寫 ()

  4. 函數的形參列表可以是多個,返回值列表也可以是多個

  5. 形參列表和返回值列表的數據類型可以是值類型和引用類型

  6. 函數的命名遵循標識符的命名規范,首字母不能是數字,首字母大寫該函數可以被本包文件和其他包文件使用,首字母小寫,只能被本包文件使用,其它包文件不能使用。

  7. 函數中的變量是局部的,函數外不生效

  8. 基本數據類型和數組默認都是值傳遞的,即進行值拷貝。在函數內修改,不會影響到原來的值

  9. 如果希望函數內的變量能修改函數外的變量,可以傳入變量的地址&,函數內以指針的方式操作變量

  10. 在Go中,函數也是一種數據類型 ,可以賦值給一個變量,則該變量是一個函數類型的變量了。通過該變量可以對函數調用。

  11. 函數既然是一種數據類型,因此在Go中函數可以作為形參,并調用

  12. 為了簡化數據類型定義,Go支持自定義數據類型
    基本語法:type 自定義數據類型名 數據類型 //理解:相當于一個別名
    示例:type myInt int //這時myInt就等價int來使用了
    示例:type mySum func (int,int) int //這時mySum就等價于一個函數類型func (int,int) int

  13. 支持對函數返回值命名,這個時候return不必指定返回哪個變量了

package main

import (
	"fmt"
)
func cal(n1 int, n2 int) (sum int, sub int) {sum = n1 + n2
	sub = n1 - n2
	return  //這個時候return不必指定返回哪個變量了
}

func main() {fmt.Println(cal(5, 4))
}

1.4 Go支持可變參數

//支持0到多個參數
func sum(args... int) (sum int) {}

支持1到多個參數
func sum(n1 int, args... int) (sum int) {}
package main

import (
	"fmt"
)

//Go可變參數示例:支持0到多個參數
func sum0(args... int) (sum int) {sum = 0
	//遍歷args
	for i := 0; i< len(args); i++ {sum += args[i]
	}
	return
}

//Go可變參數示例:支持1到多個參數
func sum1(n1 int,args... int) (sum int) {sum = n1
	//遍歷args
	for i := 0; i< len(args); i++ {sum += args[i]
	}
	return
}

func main() {fmt.Println(sum0())  //sum0調用可以不傳入任何參數
	fmt.Println(sum1(10,-1,5,5))  //sum1調用至少傳入一個參數
}
init函數

每一個源文件都可以包含一個init函數,init函數主要的做用就是完成一些初始化工作,該函數會在main函數之前執行,被Go運行框架調用,也就是說init會在main函數之前被調用。

package main
import "fmt"
func init(){fmt.Println("init print......")
}
func main(){fmt.Println("main print......")
}

如果一個文件同時包含全局變量定義、init函數和main函數,則執行流程為:全局變量定義—>init函數—>main函數

匿名函數

匿名函數使用方式1
在定義匿名函數時就直接調用,這種方式匿名函數只能調用一次。

package main

import "fmt"

func main() {res1 := func(n1 int, n2 int) int {return n1 + n2
	}(10, 20)   //這里的(10, 20)就是直接調用函數了
	fmt.Println("res1 = ", res1)
}

匿名函數使用方式2
將匿名函數賦給一個變量(函數變量),再通過該變量來調用匿名函數

package main

import "fmt"

func main() {a := func(n1 int, n2 int) int {return n1 + n2
	}
	res1 := a(10, 20) //這里通過 函數變量a 來調用匿名函數
	fmt.Println("res1 = ", res1)
}

匿名函數使用方式3:全局匿名函數
如果將匿名函數賦給一個全局變量,那么這個匿名函數,就成為一個全局匿名函數,可以再程序有效。

package main

import "fmt"

var (
	Func1 = func(n1 int, n2 int) int {return n1 + n2
	}
)

func main() {res1 := Func1(10, 20)
	fmt.Println("res1 = ", res1)
}
函數的defer

在函數種,程序員經常需要創建資源(比如:數據庫連接、文件句柄、鎖等),為了在函數執行完畢后,及時的釋放資源,Go的設計者提供defer(延時機制)。
(1)當go執行到一個defer時,不會立即執行defer后的語句,而是將defer后的語句壓入到一個棧種,然后繼續執行函數的下一個語句
(2)當函數執行完畢后,再從defer棧中,依次從棧頂取出語句執行(注:遵守棧 先入后出的機制)
(3)在defer將語句放入到棧時,也會將相關的值拷貝同時入棧
在這里插入圖片描述

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

分享名稱:Golang數據類型-函數(六)-創新互聯
當前URL:http://vcdvsql.cn/article4/ceogie.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣營銷型網站建設面包屑導航App設計ChatGPT小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名