Flutter學習筆記(4) Dart函式

2022-05-21 08:29:30 字數 2837 閱讀 8249

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...