dart是乙個物件導向的語言,所以函式也是物件,函式屬於function物件,函式可以像引數一樣傳遞給其他函式,這樣便於做**處理;
一.指定返回值的函式
//判斷兩個字串是否相等
bool
isequal(string name1,string name2)
print(isequal('張三
','李四
'));
//列印結果:false
上面的示例我們指定了引數的型別,在不確定引數的型別的情況下,我們的引數可以用dynamic、object或var來接收引數
//判斷兩個字串是否相等
bool isequal(dynamic name1,var
name2)
print(isequal('張三
','李四
'));
//列印結果:false
二.不指定返回值的函式
//判斷兩個字串是否相等
isequal(string name1,string name2)
print(isequal('張三
','李四
'));
//列印結果:false
//列印文字
isequal(dynamic name1,object
name2)
else
return
result;
}print(isequal('張三
','李四
'));
//列印結果:張三和李四的名字不同
三.如果函式裡面只有乙個表示式,則可以這樣簡寫
void printsth(string content) => print('hello word
');
四.可選引數
乙個函式可以有兩種引數:必須的和可選的,必須引數要放在前面,可選引數(即可以不傳)要放在後面;
可選引數又分為兩種:位置引數和命名引數,兩種引數都可以設定預設值,如果沒有設定預設值,則預設值為null;
1.可選的命名引數
定義乙個函式,使用指定命名引數,在呼叫方法的時候,需要指出你要給哪個引數進行傳值,如:
(1)無預設值例子:
void printsth(string param1,) => print(param1+'讓'+param2+'
打'+param3);
printsth('張三
',param2:'
李四',param3:'王五'
);//
列印結果:張三讓李四打王五
void printsth(string param1,) => print(param1+'
讓'+param2+'
打'+param3);
printsth('張三
',param2:'李四'
);//
列印結果:張三讓李四打null
這裡我們可以看到必須引數和可選的命名引數的區別,必須引數直接傳值,可選的命名引數需要指定引數名進行傳值,如果沒有傳值,則預設值為null;
(2)有預設值的例子
void printsth(string param1,) => print(param1+'讓'+param2+'
打'+param3);
printsth('張三
',param2:'李四'
);//
列印結果:張三讓李四打王五
2.可選的位置引數
與可選的命名引數不同,可選的位置引數需要通過將引數包裹起來,就能標識成位置引數
(1)沒有預設值的例子
void printsth(string param1,[string param2,string param3]) => print(param1+'讓'+param2+'
打'+param3);
printsth('張三
','李四
','王五');
//列印結果:張三讓李四打王五
void printsth(string param1,[string param2,string param3]) => print(param1+'
讓'+param2+'
打'+param3);
printsth('張三
','李四');
//列印結果:張三讓李四打null
(2)有預設值的例子
void printsth(string param1,[string param2,string param3 = '王五']) => print(param1+'
讓'+param2+'
打'+param3);
printsth('張三
','李四');
//列印結果:張三讓李四打王五
總結一下命名引數和位置引數
命名引數:使用{}將引數包裹起來,傳參時需要指定引數名,預設值使用「:」指定;
位置引數:使用將引數包裹起來,傳參時不需要指定引數名,按位排,預設值使用「=」指定;
五.main函式
六.函式的返回值
在dart語言中,函式的返回值有如下特點:
1.所有的函式都會有返回值;
2.如果沒有指定函式的返回值,則預設的返回值是null;
3.沒有返回值的函式,系統會在最後新增隱式的return語句;
下一章節:lutter學習筆記(5)--dart運算子
Flutter學習筆記(1)
各顯示控制項說明 scaffold scaffold 實現了基本的 material 布局。只要是在 material 中定義了的單個介面顯示的布局控制項元素,都可以使用 scaffold 來繪製。listview listview預設是豎直方向的 flexible flexible是乙個控制row...
flutter 學習筆記1
跨平台技術的時間軸 最早為hybird混合開發,後來為react native的橋接技術,hybird的主要依賴的webview的技術,乙個重量級的控制項,容易產生記憶體問題。對於複雜的webview顯示效能不好。flutter 最新的跨平台技術支援android,ios,macos,windows...
Flutter學習筆記 螢幕適配
flutter螢幕適配方案,使頁面設計在不同尺寸的螢幕上都能顯示一致 可以使用外掛程式 flutter screenutil 安裝 dependencies flutter sdk flutter 新增依賴 flutter screenutil 0.6.0在使用的地方匯入 import packag...