Flutter學習筆記(4)--Dart函數

来源:https://www.cnblogs.com/upwgh/archive/2019/07/10/11167393.html
-Advertisement-
Play Games

Dart是一個面向對象的語言,所以函數也是對象,函數屬於Function對象,函數可以像參數一樣傳遞給其他函數,這樣便於做回調處理; ...


如需轉載,請註明出處:Flutter學習筆記(4)--Dart函數

Dart是一個面向對象的語言,所以函數也是對象,函數屬於Function對象,函數可以像參數一樣傳遞給其他函數,這樣便於做回調處理;

一.指定返回值的函數

 

//判斷兩個字元串是否相等
bool isEqual(String name1,String name2){
    return name1 == name2;
}
print(isEqual('張三','李四'));

//列印結果:false

 

上面的示例我們指定了參數的類型,在不確定參數的類型的情況下,我們的參數可以用dynamic、object或var來接收參數

//判斷兩個字元串是否相等
bool isEqual(dynamic name1,var name2){
    return name1 == name2;
}
print(isEqual('張三','李四'));

//列印結果:false

二.不指定返回值的函數

//判斷兩個字元串是否相等
isEqual(String name1,String name2){
    return name1 == name2;
}
print(isEqual('張三','李四'));

//列印結果:false

//列印文本
isEqual(dynamic name1,object name2){
    var result = '$name1和$name2的名字是否相同'if(name1 == name2){
        result = '$name1和$name2的名字不同';
    }else{
        result = '$name1和$name2的名字相同';
}
    return result;
}

print(isEqual('張三','李四'));

//列印結果:張三和李四的名字不同

三.如果函數裡面只有一個表達式,則可以這樣簡寫

void printSth(String content) => print('hello word');

四.可選參數

一個函數可以有兩種參數:必須的和可選的,必須參數要放在前面,可選參數(即可以不傳)要放在後面;

可選參數又分為兩種:位置參數和命名參數,兩種參數都可以設置預設值,如果沒有設置預設值,則預設值為null;

1.可選的命名參數

定義一個函數,使用{String param1,String param2,...........}指定命名參數,在調用方法的時候,需要指出你要給哪個參數進行傳值,如:

(1)無預設值例子:

void printSth(String param1,{String param2,String param3}) => print(param1+''+param2+''+param3);

printSth('張三',param2:'李四',param3:'王五');

//列印結果:張三讓李四打王五

void printSth(String param1,{String param2,String param3}) => print(param1+''+param2+''+param3);

printSth('張三',param2:'李四');

//列印結果:張三讓李四打null

這裡我們可以看到必須參數和可選的命名參數的區別,必須參數直接傳值,可選的命名參數需要指定參數名進行傳值,如果沒有傳值,則預設值為null;

(2)有預設值的例子

void printSth(String param1,{String param2,String param3:'王五'}) => 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函數

Flutter應用程式必須要有一個main函數,和其他語言一樣作為程式的入口函數,下麵的代碼表示應用要啟動MyApp類;

void main() => runApp(MyApp());

六.函數的返回值

在Dart語言中,函數的返回值有如下特點:

1.所有的函數都會有返回值;

2.如果沒有指定函數的返回值,則預設的返回值是null;

3.沒有返回值的函數,系統會在最後添加隱式的return語句;

 

下一章節:lutter學習筆記(5)--Dart運算符

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、條件查詢 1、查詢的基本語法 from關鍵字後面寫表名,表示數據來源於是這張表 select後面寫表中的列名,如果是*表示在結果中顯示表中所有列 在select後面的列名部分,可以使用as為列起別名,這個別名出現在結果集中 如果要查詢多個列,之間使用逗號分隔 2、消除重覆行 在select後面列 ...
  • Retail Reference Architecture Part 1: Building a Flexible, Searchable, Low-Latency Product Catalog Product catalog data management is a complex proble ...
  • 將用戶連接資料庫(5.7.14-7)的IP地址從 10.10.5.16 修改為 10.11.4.197 使用該命令修改用戶名欄位也是可以。 ...
  • 1、三台虛擬機關閉防火牆 三台機器執行以下命令(root用戶來執行) service iptables stop chkconfig iptables off 2、三台機器關閉selinux vim /etc/selinux/config 3、三台機器更改主機名 vim /etc/sysconfig ...
  • union 操作符用於合併兩個或多個 SELECT 語句的結果集,並且去除重覆數據,按照資料庫欄位的順序進行排序。 例 SELECT NAME FROM TABLE1UNIONSELECT EMP_NAME FROM TABLE2; union all 操作符用於合併兩個或多個 SELECT 語句的 ...
  • 一、資料庫基礎 表 table:數據是保存在表內,保存在一個表內的數據,應該具有相同的數據格式 行:行用於記錄數據 記錄:行內的數據 列:列用於規定數據格式 欄位:數據的某個列 主鍵:唯一地標識表中的某一條記錄,不能空,不能重覆 表 table:數據是保存在表內,保存在一個表內的數據,應該具有相同的 ...
  • left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄inner join(等值連接) 只返回兩個表中聯結欄位相等的行 舉例如下: 表A記錄如下:aID aNum1 a200501112 a2 ...
  • 一、ERROR 1698(28000):Access denied for user root@localhost錯誤 我的操作系統是ubuntu: 我的MySQL版本是: 安裝完成後,登錄mysql的時候就出現瞭如下錯誤: 因為安裝的過程中沒讓設置密碼,可能密碼為空,但無論如何都進不去mysql。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...