前言
學(xué)習(xí)dart給我最深的感觸是.它既像java一樣定義類和方法,又想腳本語言,比如JavaScript那樣可以隨意定義,因此,如果你對java或者JavaScript語言比較了解的話,你能夠很好的去運(yùn)用它.
當(dāng)然它還帶了點(diǎn)一些C語言的知識, 比如,可以使用typeof
關(guān)鍵詞, 曾經(jīng)在學(xué)習(xí)C語言的時(shí)候,常常會(huì)看到它.但是后來又不常用,就有所忘記,特此記錄.可以溫故知新.
typeof
從英文翻譯的意思是 類型.其實(shí)可以說成是等同于某種類型.
舉例1. 聲明一個(gè)簡單類型
比如 :
typeof int add; //那么此時(shí)add表示的是它是一個(gè)可以聲明int的類型.
舉個(gè)例子
我需要聲明一個(gè)變量temp是int類型,我們常常是這樣寫的
int temp =0; //假設(shè)temp 給它賦值是0
那么同樣,我也可以這樣寫
typeof int add;
add temp =0; //這樣寫其實(shí)也是可以的.
有的人也許會(huì)問了,為什么你要這樣定義呢?這豈不是很麻煩?我明明有這個(gè)int類型我干嘛還要去定義這樣一個(gè)類型?
有句話肯定很好給你解釋, 存在即是合理.我們下面舉個(gè)例子 ,讓你體會(huì)下.
舉例2.聲明一個(gè)特殊類型(如方法類型)
我定義一個(gè)這樣的類型
typeof int Add(int a, int b);
那么這個(gè)定義的應(yīng)該怎么解釋呢?!
聲明 Add是一個(gè)帶有兩個(gè)int參數(shù)并且返回值是int類型的函數(shù)類型.
這個(gè)怎么理解呢 ?我們舉個(gè)非常通俗的例子,
比如說, 我們通常一個(gè)具有機(jī)箱,主板,CPU,內(nèi)存條,風(fēng)扇等等的東西叫做主機(jī),那么主機(jī)就像是一個(gè)類型, 你肯并不會(huì)每次對別人介紹時(shí),說 這是一個(gè)主機(jī),主機(jī)里面有機(jī)箱,主板,內(nèi)存條,CPU等等,只有別人去關(guān)注的時(shí)候,你會(huì)詳細(xì)的告訴他,里面的構(gòu)造是什么. 不知道這個(gè)例子是否能夠讓你有所領(lǐng)悟呢?
其實(shí)做程序,干開發(fā),做的越久,你會(huì)發(fā)現(xiàn),其實(shí)程序世界并不是那么抽象,有些東西還是可以和現(xiàn)實(shí)中進(jìn)行一一對應(yīng)的,比如 java的設(shè)計(jì)模式, 比如程序語言的設(shè)計(jì) ,我們剛剛說的typeof
就是這樣.
typeof
就像是具有修飾特性的詞語一樣,指定某一類東西的類型.
說了這么多,其實(shí)我們還沒有說如何去使用它呢?
那么,我們從現(xiàn)實(shí)中找例子去理解,就好比我們?nèi)绾闻袛嘁粋€(gè)物品,是不是主機(jī)呢?(我們就拿主機(jī)說事).
我們可以去注意它的一些特別和屬性,在程序中,其實(shí)也是一樣的. 我們需要注意一個(gè)對象或者一個(gè)值,是否是哪個(gè)類型, 第一,對照返回值, 第一對照它的參數(shù)個(gè)數(shù)和參數(shù)的類型,如果兩者都f符合,那么我們就能確定它是我們說的那個(gè)類型.下面我們舉個(gè)例子看下!!!
void main() {
print(plusNum is Add);
}
int plusNum(int x, int y) {
return x + y;
}
typedef int Add(int a, int b);
從圖中的運(yùn)行結(jié)果可以看出,說明plusNum 是Add這個(gè)函數(shù)類型.
其實(shí)我們舉的例子很簡單,但是如果你們理解,那么在以后的開發(fā)中,遇到了就不會(huì)覺得很突兀,難以理解了!
好了,今天和大家分享的東西,就這么多, 東西并不難,只是有時(shí)候不太好理解. 特此記錄,溫故而知新!