Golang基礎學習(八)函式 包和錯誤處理

2021-10-01 04:37:08 字數 3099 閱讀 9638

func 函式名(形參列表)(返回值型別列表)

打包(宣告包)語法

引入包

包的使用細節

為了其他包中的檔案,可以訪問到該包中的函式(或者變數),函式名(變數名)的首字母需要大寫。在訪問其他包函式時,語法是:包名.函式名(變數名)

如果包名較長,golang支援給包取別名,取別名後,原來包名就不能使用。

同乙個包下,不能有相同的函式名(全域性變數名)

要編譯成乙個可執行檔案,需要將這個包宣告為main,即package.main。這個是乙個語法規範,如果是乙個庫,包名可以自定義。

package utils

func

cal(n1 float64

, n2 float64

, oper byte

)float64

}// -------分割線------

package main

import

("fmt"

"go_code/project01/exercise12/utils"

)func

main()

函式形參列表和返回值列表都可以是多個

形參型別和返回值列表型別可以是值型別或者引用型別

函式名遵守識別符號命名規則。函式名大寫公用,小寫私有

函式中的變數是區域性的

基本資料型別和陣列都是值傳遞,即值拷貝。在函式內修改,不會影響到原來的值

如果希望函式內的變數能夠希望函式外的變數,可以傳入變數的&,函式內以指標的形式操作變數

go函式不支援函式過載(函式名相同,形參個數和型別不同),golang中以其他方式實現,可變引數和空介面

函式也是一種資料型別,可以賦值給乙個變數,該變數就是乙個函式型別的變數了。通過該變數就可以對函式呼叫

函式是一種資料型別,可以作為乙個形參並且呼叫

golang支援自定義資料型別

支援對函式返回值命名

使用_識別符號,忽略返回值

go中支援可變引數

args是slice,通過args[index]可以訪問到各個值

args名稱可以變,通常是使用args

形參列表中有可變引數,則可變引數需要放在最後

// 11.支援對函式返回值命名

fun get

(n1 int

, n2 int

)(sum int

, sub int

)// 13. go支援可變引數

func sum (args...

int)sum int

func sum (n1 int

, args...

int)sum2 int

sum :=

func

(n1 int

, n2 int

)int(10

,20)// ------------------

a :=

func

(n1 int

, n2 int

)int

// 匿名函式賦值給了乙個全域性變數

var(

func1 =

func

(n1 int

, n2 int

)int

)

func

addupper()

func

(int

)int

}

defer 語句
len(str) :內建函式,統計字串長度

rune(str):字串遍歷,同時處理中文問題

strconv.atoi(str) (int, error):字串轉整數

strconv.itoa(int):整數轉字串

byte(str):字串轉byte

string(byte):byte轉字串

strconv.formatint(123,2):十進位制轉其他進製

strings.contains(s, substring)查詢子串是否在指定的字串中

strings.count(s, substring)統計字串中含有的子串數

strings.equalfold(s1,s2)不區分大小寫的字串比較。 == 比較時會區分大小寫

strings.index(s, substring)返回子串第一次出現的index值

strings.lastindex(s, substring)返回子串在字串中最後一次出現的index

strings.replace(s, substr1,substr2, n)將指定的子串替換成另乙個子串。n可以指定希望替換的多少個,n=-1表示全部替換

strings.split(s, 「,」)按照指定的字元分割,返回乙個字串陣列

strings.tolower(s)/strings.toupper(s)字串大小寫轉換

strings.trimspace(s):去除字串左右空格

strings.trim(s, " !"):將左右兩邊的指定字元去掉

strings.trimleft(s, 「!」)將左邊指定字元去掉

strings.hasprefix(s, prefix)判斷字串是否以指定的字串開頭

strings.hassuffix(s, prefix)判斷字串是否以指定的字串結尾

時間常量:time.millisecond…(hour…)查手冊

time.sleep():休眠

unix:時間戳/unixnano:時間戳 獲取隨機數字

獲取當前時間戳:time.now().unix()

make:用來分配記憶體,主要用來分配引用型別

// defer + recover

defer

func()

}()

golang基礎學習 time包常用函式學習

golang基礎學習 time包的學習.package main import time fmt func main 輸出 函式詳解 time.microsecond 從官網的解釋可以看到,microsecond是time包的乙個常量。可以看到 func month string方法中 month是...

Swift基礎(八)函式和閉包

override func viewdidload print arr 執行結果 3,4 3 種閉包簡寫方法 1.省略 引數型別和括號 var arr getlist 1,2,3,4 pre 2.省略 引數型別和括號,return關鍵字 arr getlist 1,2,3,4 pre s in s ...

golang基礎學習 函式

函式 函式是結構化程式設計中最小的模組單元,日常開發過程中,將複雜的演算法過程分解為若干個小任務 塊 使程式的結構性更清晰,程式可讀性提公升,易於後期維護和讓別人讀懂你的 編寫多個函式的主要目的是將乙個需要很多行 的複雜問題分解為一系列簡單的任務 那就是函式 來解決。在實際程式設計中,我們把重複性的...