GO是編譯性語言,所以函數(shù)的順序是無關(guān)緊要的,為了方便閱讀,建議入口函數(shù) main 寫在最前面,其余函數(shù)按照功能需要進(jìn)行排列
憑祥網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
GO的函數(shù) 不支持嵌套,重載和默認(rèn)參數(shù)
GO的函數(shù) 支持 無需聲明變量,可變長度,多返回值,匿名,閉包等
GO的函數(shù)用 func 來聲明,且左大括號 { 不能另起一行
一個簡單的示例:
輸出為:
參數(shù):可以傳0個或多個值來供自己用
返回:通過用 return 來進(jìn)行返回
輸出為:
上面就是一個典型的多參數(shù)傳遞與多返回值
對例子的說明:
按值傳遞:是對某個變量進(jìn)行復(fù)制,不能更改原變量的值
引用傳遞:相當(dāng)于按指針傳遞,可以同時改變原來的值,并且消耗的內(nèi)存會更少,只有4或8個字節(jié)的消耗
在上例中,返回值 (d int, e int, f int) { 是進(jìn)行了命名,如果不想命名可以寫成 (int,int,int){ ,返回的結(jié)果都是一樣的,但要注意:
當(dāng)返回了多個值,我們某些變量不想要,或?qū)嶋H用不到,我們可以使用 _ 來補位,例如上例的返回我們可以寫成 d,_,f := test(a,b,c) ,我們不想要中間的返回值,可以以這種形式來舍棄掉
在參數(shù)后面以 變量 ... type 這種形式的,我們就要以判斷出這是一個可變長度的參數(shù)
輸出為:
在上例中, strs ...string 中, strs 的實際值是b,c,d,e,這就是一個最簡單的傳遞可變長度的參數(shù)的例子,更多一些演變的形式,都非常類似
在GO中 defer 關(guān)鍵字非常重要,相當(dāng)于面相對像中的析構(gòu)函數(shù),也就是在某個函數(shù)執(zhí)行完成后,GO會自動這個;
如果在多層循環(huán)中函數(shù)里,都定義了 defer ,那么它的執(zhí)行順序是先進(jìn)后出;
當(dāng)某個函數(shù)出現(xiàn)嚴(yán)重錯誤時, defer 也會被調(diào)用
輸出為
這是一個最簡單的測試了,當(dāng)然還有更復(fù)雜的調(diào)用,比如調(diào)試程序時,判斷是哪個函數(shù)出了問題,完全可以根據(jù) defer 打印出來的內(nèi)容來進(jìn)行判斷,非??焖?,這種留給你們?nèi)崿F(xiàn)
一個函數(shù)在函數(shù)體內(nèi)自己調(diào)用自己我們稱之為遞歸函數(shù),在做遞歸調(diào)用時,經(jīng)常會將內(nèi)存給占滿,這是非常要注意的,常用的比如,快速排序就是用的遞歸調(diào)用
本篇重點介紹了GO函數(shù)(func)的聲明與使用,下一篇將介紹GO的結(jié)構(gòu) struct
數(shù)組是一個由 固定長度 的 特定類型元素 組成的序列,一個數(shù)組可以由零個或多個元素組成。 數(shù)組是值類型
數(shù)組的每個元素都可以通過索引下標(biāo)來訪問,索引下標(biāo)的范圍是從0開始到數(shù)組長度減1的位置,內(nèi)置函數(shù) len() 可以返回數(shù)組中元素的個數(shù)。
2.類型的打印,結(jié)果的第二種打印方式
3.對元素的修改或者賦值
4.判斷數(shù)組是否相等:長度、類型
4.數(shù)組的地址:連續(xù)存儲的空間
5.數(shù)組的賦值、地址、取值
6.數(shù)組的默認(rèn)值
7.數(shù)組的初始化
8.數(shù)組的逆置
9.求數(shù)組的最大值、最小值、平均值
10.對數(shù)組字符串進(jìn)行連接
11.冒泡排序法的實現(xiàn)
12.數(shù)組做函數(shù)的參數(shù)
13.二維數(shù)組:賦值和地址
14.二維數(shù)組:打印和輸出
15. 指針數(shù)組,每一個元素都是地址
17.數(shù)組的內(nèi)存分配
通過runtime.GOMAXPROCS函數(shù),應(yīng)用程序何以在運行期間設(shè)置運行時系統(tǒng)中得P最大數(shù)量。但這會引起“Stop the Word”。所以,應(yīng)在應(yīng)用程序最早的調(diào)用。并且最好的設(shè)置P最大值的方法是在運行Go程序之前設(shè)置好操作程序的環(huán)境變量GOMAXPROCS,而不是在程序中調(diào)用runtime.GOMAXPROCS函數(shù)。
最后記住,無論我們傳遞給函數(shù)的整數(shù)值是什么值,運行時系統(tǒng)的P最大值總會在1~256之間。
runtime.Goexit函數(shù)被調(diào)用后,會立即使調(diào)用他的Groution的運行被終止,但其他Goroutine并不會受到影響。runtime.Goexit函數(shù)在終止調(diào)用它的Goroutine的運行之前會先執(zhí)行該Groution中還沒有執(zhí)行的defer語句。
runtime.Gosched函數(shù)的作用是暫停調(diào)用他的Goroutine的運行,調(diào)用他的Goroutine會被重新置于Gorunnable狀態(tài),并被放入調(diào)度器可運行G隊列中。
runtime.NumGoroutine函數(shù)在被調(diào)用后,會返回系統(tǒng)中的處于特定狀態(tài)的Goroutine的數(shù)量。這里的特指是指Grunnable\Gruning\Gsyscall\Gwaition。處于這些狀態(tài)的Groutine即被看做是活躍的或者說正在被調(diào)度。
注意:垃圾回收所在Groutine的狀態(tài)也處于這個范圍內(nèi)的話,也會被納入該計數(shù)器。
前者調(diào)用會使調(diào)用他的Goroutine與當(dāng)前運行它的M鎖定到一起,后者調(diào)用會解除這樣的鎖定。
注意:
debug.SetMaxStack函數(shù)的功能是約束單個Groutine所能申請的??臻g的最大尺寸。
debug.SetMaxThreads函數(shù)的功能是對go語言運行時系統(tǒng)所使用的內(nèi)核線程的數(shù)量(確切的說是M的數(shù)量)進(jìn)行設(shè)置
會讓運行時系統(tǒng)進(jìn)行一次強制性的垃圾收集,
用于設(shè)置一個比率(垃圾收集比率),前面所說的單元增量與前一次垃圾收集時的歲內(nèi)存的單元數(shù)量和此垃圾手機(jī)比率有關(guān)。
觸發(fā)垃圾收集的堆內(nèi)存單元增量=上一次垃圾收集完的堆內(nèi)存單元數(shù)量*(垃圾收集比率/100)
; 數(shù)值處理程序設(shè)計
DISPC MACRO M ;定義顯示單字符的宏
MOV DL,M
MOV AH,2
INT 21H
ENDM
DISPS MACRO S;定義顯示字符串的宏
MOV AH,9
LEA DX,S
INT 21H
ENDM
DATA SEGMENT;定義數(shù)據(jù)段
X DB 50,71,83,10,16,23,57,99,18,25,88,97,-85,-53,78,29,-85,24,75,31
MAX DB ?
MIN DB ?
S1 DB 'MAX=$'
S2 DB 'MIN=$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA;段說明
GO: MOV AX,DATA
MOV DS,AX;段地址填裝
L0: MOV CX,20;置長度
LEA SI,X;將X的偏移地址傳送到SI中
MOV AX,[SI]
MOV MAX,AL
MOV MIN,AL
L1: ADD SI,1
MOV AX,[SI]
CMP MAX,AL
JGE L2;若大于等于,轉(zhuǎn)到L2
MOV MAX,AL
L2: CMP MIN,AL
JLE L3
MOV MIN,AL
L3: LOOP L1
DISPS S1;顯示‘MAX='
CMP MAX,0
JG L4
DISPC '-';顯示負(fù)號
NEG MAX ;取絕對值
L4: MOV AL,MAX
AAM ;使(AH)=十位,(AL)=個位
OR AX,3030H ;將數(shù)字轉(zhuǎn)換成字符
PUSH AX ;入棧
DISPC AH;顯示十位
POP AX;出棧
DISPC AL;顯示個位
DISPC 0DH
DISPC 0AH;回車換行
DISPS S2;顯示’MIN='
CMP MIN,0
JG L5
DISPC '-'
NEG MIN
L5: MOV AL,MIN
AAM
OR AX,3030H
PUSH AX
DISPC AH
POP AX
DISPC AL
DISPC 0DH
DISPC 0AH
DISPC 8;退格
DISPC 20H;空格
MOV AH,7 ;等待
INT 21H
MOV AH,4CH ;退出
INT 21H
CODE ENDS
END GO
最大 和最小
分享題目:Go語言輸出最大值的程序 go語言輸出hello word
網(wǎng)站地址:http://jinyejixie.com/article2/dopsdoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、小程序開發(fā)、網(wǎng)站設(shè)計、動態(tài)網(wǎng)站、建站公司、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)