成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Go語言輸出最大值的程序 go語言輸出hello word

GO語言學(xué)習(xí)系列八——GO函數(shù)(func)的聲明與使用

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

go語言:數(shù)組

數(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)存分配

go runtime包的使用

通過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)

商城網(wǎng)站建設(shè)
台湾省| 广西| 孟津县| 常宁市| 芦山县| 曲松县| 丹棱县| 神农架林区| 洛南县| 涞源县| 丰原市| 白玉县| 井冈山市| 浦东新区| 庆阳市| 丰城市| 灵台县| 新乡县| 永靖县| 鄂尔多斯市| 英山县| 甘谷县| 青冈县| 巴里| 南充市| 五原县| 舞钢市| 灵山县| 扶风县| 尼勒克县| 东辽县| 吴江市| 利辛县| 昌邑市| 崇仁县| 河津市| 宽甸| 凤山县| 光泽县| 鸡泽县| 麻江县|