Flutter學習筆記(3)--Dart變數與基本數據類型

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

在Dart裡面,變數的聲明使用var、Object或Dynamic關鍵字,如下所示: var name = ‘張三’; 在Dart語言里一切皆為對象,所以如果沒有將變數初始化,那麼它的預設值為null(包括數字),如果需要判斷變數是否為null,則需要進行如下判斷: String name;if(n... ...


如需轉載,請註明出處:Flutter學習筆記(3)--Dart變數與基本數據類型

一.變數

在Dart裡面,變數的聲明使用var、Object或Dynamic關鍵字,如下所示:

var name = ‘張三’;

在Dart語言里一切皆為對象,所以如果沒有將變數初始化,那麼它的預設值為null(包括數字),如果需要判斷變數是否為null,則需要進行如下判斷:

String name;if(name == null);

上面var name = ‘張三’,並沒有顯示的聲明變數的類型,我們也可以顯示的聲明:String name = ‘張三’;如果對象(變數)不僅限於單一類型,請用Object或Dynamic關鍵字來進行修飾;

二.常量與固定值

在Dart語言裡面,如果想要聲明不變的常量,可以使用final和const來進行修飾。

1.final

final修飾的常量必須在聲明的時候就進行初始化,而且在初始化之後值不可變;

final userName = '張三';
userName = ‘李四’;//會引發錯誤

2.const

const與final不同,const是一個編譯時的常量,這也就意味著通過const修飾的常量,在編譯期間就要被初始化,不能等到程式運行後在進行初始化;

const userName;//錯誤,const是編譯時常量,需要在聲明時進行賦值初始化
const userName = ‘張三’;//正確

var name = ‘張三’;
const userName = name;//錯誤,name是個變數,不能賦值給const

const不僅僅可以聲明常數變數,也可以聲明常量值以及聲明創建常量值的構造函數,任何變數都可以有一個常量值;

final aList = const[];
const bList = const[];
var cList = const[];

這裡的aList和bList就是兩個空的、不可變的列表集合,而cList則是空的、可變的列表集合;
需要註意的是:cList可以重新賦值,而aList和bList不可以重新複製;

三.基本數據類型

Dart語言常用的基本數據類型包括:Number數字、String字元串、Boolean布爾、List數組、Map集合、symbol符號;

1.Number類型包括int整型和double浮點型;

int整型:取值範圍為-2^53到2^53,int類型不能包含小數點;

double浮點型:64位(雙精度)浮點數;

int和double都是num類型的子類,num類型包括的運算操作有:+、-、*、/、以及移位操作>>,num類型包括的常用方法有:abs、ceil和floor;

2.String類型

String s1 = ‘張三’;
String s2 = ‘李四’;
String s3 = s1 + s2;
print(s3);
列印:張三李四;

//單引號裡面嵌套單引號,必須在前面加上反斜杠
String s4 = ‘單引號裡面有單引號it\'s,必須在前面加反斜杠’;

//雙引號裡面嵌套單引號,可以正常使用
String s5 = “雙引號裡面有單引號it‘s,可正常使用”;

//單引號裡面嵌套雙引號,可以正常使用
String s6 = ‘單引號裡面有雙引號“hello word”,可以正常使用’;

//雙引號裡面嵌套雙引號,必須在前面加上反斜杠
String s7 = “雙引號裡面有雙引號\“hello word\”,必須在前面加上反斜杠”

//可以通過使用單引號或雙引號的三引號來創建多行文字;
String s8 = '''這是一個
    多行的
    文本'''

String s9= """這也是一個
    多行的
    文本"""

3.Boolean類型

bool a = false

4.List集合

和java一樣, list裡面的數據必須同一類型的數據,而且下標是從0開始的;

var list = [1,2,3];
//聲明一個編譯時常量const的list
List list = const[11,22,33];

5.Map集合

Map類型將Key和Value關聯在一起,也就是鍵值對,像其他支持Map的編程語言一樣,Key必須是唯一的;

var week = {
    ‘Monday’ : ‘星期一’,
    ‘Tuesday’ : ‘星期二’,
    ‘Wednesday’ : ‘星期三’,
    ‘Thursday’ : ‘星期四’,
    ‘Friday’ : ‘星期五’,
    ‘Saturday’ : ‘星期六’,       
}

var week = new Map();
week['Monday'] = ‘星期一’;
week['Tuesday'] = ‘星期二’;
week['Wednesday'] = ‘星期三’;
week['Thursday'] = ‘星期四’;
week['Friday'] = ‘星期五’;
week['Saturday'] = ‘星期六’;

添加新的Key-value對,對上面week再添加一個新的值;

week['0'] = '星期日';

這裡的0不是只下標的索引,而是一個鍵(Key),因此我們要列印week的length的話,長度為7;

檢查Key是否再Map對象中

assert(week['Mond'] == null);

 

下一章節:Flutter學習筆記(4)--Dart函數

 


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

-Advertisement-
Play Games
更多相關文章
  • -- 空表不導出,建立表空間 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 -- 查詢鎖表 select b.username,b.sid,b.serial#,logo... ...
  • 一、資料庫的介紹 資料庫(Database)是存儲與管理數據的軟體系統,就像一個存入數據的物流倉庫。每個資料庫都有一個或多個不同的API介面用於創建,訪問,管理,搜索和複製所保存的數據。我們也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢,所以我們使用關係型資料庫管理系統(RDBMS)來存 ...
  • 參考:https://github.com/hidu/mysql-schema-sync 需求:測試環境表結構變動同步到開發環境,兩個實例各有數百個庫,不適合每個庫寫一個配置文件 環境:操作系統ubuntu16.04、兩個資料庫實例percona5.7、golang版本1.12 安裝mysql-sc ...
  • 表結構如下: id varchar(32) info json 數據: 現在我需要獲取info中disanme的值,查詢方法有: 1. 結果: id = 1, disname=“小明” 以上sql查出的disname值是帶有雙引號的,有時我們不需要雙引號,此時就需要用到下麵這種方式。 2. 結果: ...
  • 1、文檔 1)ElasticSearch是面向文檔的,文檔是所有可搜索數據的最小單位。例如: a)日誌文件中的日誌項; b)一張唱片的詳細信息; c)一篇文章中的具體內容; 2)在ElasticSearch中,文檔會被序列化成Json格式: a)Json對象是由欄位組成的; b)每個欄位都有對應的字 ...
  • [TOC] 一、資料庫的安裝和連接 1.1 PyMySQL的安裝 1.2 python連接資料庫 1.2.1 更多參數版 二、創建表操作 三、操作數據 3.1 插入操作 3.2 查詢操作 Python查詢Mysql使用 fetchone() 方法獲取單條數據,使用 :方法獲取多條數據。 : 該方法獲 ...
  • Redis主從複製機制詳解 Redis有兩種不同的持久化方式,Redis伺服器通過持久化,把Redis記憶體中持久化到硬碟當中,當Redis宕機時,我們重啟Redis伺服器時,可以由RDB文件或AOF文件恢復記憶體中的數據。 不過持久化後的數據仍然只在一臺機器上,因此當硬體發生故障時,比如主板或CPU壞 ...
  • 第0步:版本選擇 AOSP版本選擇很重要,如果選錯了,會造成編譯失敗等各種問題,編譯AOSP對Xcode的版本是有要求的; 比如:AOSP6.0 7.0,要求Xcode的版本是8.3,然而在MacOS 10.14上面是不支持Xcode8.3的這就很尷尬; 由於現在大家的Mac環境基本是更新到最新的1 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...