亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flutter入門學(xué)習(xí)Dart語言變量及基本使用概念

 更新時(shí)間:2022年09月23日 09:28:37   作者:代碼迷途  
這篇文章主要為大家介紹了Flutter入門學(xué)習(xí)Dart語言變量及基本使用概念,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

Dart是Google發(fā)布的開源編程語言,是一種面向?qū)ο蟮恼Z言。其主要應(yīng)用是Flutter框架開發(fā)(Android、IOS),此外,也可以用在服務(wù)器、腳本、Web開發(fā)中。隨著Flutter3.0開始支持全平臺(tái)開發(fā),Dart也可以實(shí)現(xiàn)桌面應(yīng)用。

關(guān)于Dart的介紹不再細(xì)說。下面開始Dart的使用介紹

首先記住一點(diǎn):在Dart中一切皆對(duì)象。

Dart中,所有變量引用的都是 對(duì)象,每個(gè)對(duì)象都是一個(gè) 的實(shí)例。

字符串、數(shù)字、函數(shù)以及 null 都是對(duì)象。除去 null 以外(如果開啟了空安全), 所有的類都繼承于 Object 類。

Dart官方站點(diǎn):dart.dev/

變量

語句:

語句是代碼中可以被執(zhí)行的最小表達(dá)形式,類似于一句話。代碼的執(zhí)行是以語句為單位進(jìn)行的。

比如聲明語句聲明一個(gè)變量或函數(shù)、賦值語句進(jìn)行賦值、調(diào)用語句執(zhí)行一個(gè)方法等。

變量的聲明賦值

聲明語句用來表示一個(gè)變量名或方法名。賦值語句則通常是給一個(gè)變量賦值。

通常變量的聲明和賦值是一起的,其語法是 類型 變量名 = 對(duì)象;,相當(dāng)于為對(duì)象取了個(gè)名字(變量名)。

String name = "張三"; // 聲明賦值語句

在聲明時(shí)進(jìn)行賦值也就是變量的初始化。

變量是一個(gè)引用。由于Dart中“萬物皆對(duì)象”的原則,變量存儲(chǔ)的都是對(duì)象的引用,變量指向的是對(duì)象。

Dart中不可空對(duì)象在聲明時(shí)必須賦值(即必須初始化)。只有函數(shù)內(nèi)部的本地變量才可以在聲明時(shí)不需要初始化。 這是Dart的空安全機(jī)制的限制。

如下,如果之生命String變量。

比如,函數(shù)內(nèi)部的本地變量可以先聲明后賦值使用。

變量的劃分

變量或數(shù)值,在編程中通常分為:可變量、不可變量(常量)、靜態(tài)變量(static)

默認(rèn)聲明的變量都是可變量。

int a=10;
a=a*2;

不可變量與可變量相對(duì)應(yīng),也叫常量,是初始化賦值(或第一次賦值)后不允許修改的變量。通過finalconst修飾符進(jìn)行限定。

通常推薦使用final定義沒有修改需求的量。聲明后,final量允許在運(yùn)行期間根據(jù)需要賦值一次,之后不能修改。

const通常用于修飾那些在程序運(yùn)行前就已經(jīng)確定的量。比如永恒不變的數(shù)字:圓周率、加速度等。需要在聲明時(shí)初始化賦值,之后不能修改。相對(duì)final更為嚴(yán)格。

static關(guān)鍵字用于修改一個(gè)類的靜態(tài)變量,只能用在類中。表示一個(gè)類上的變量。

默認(rèn)值

在 Dart 中,未初始化以及可空類型的變量擁有一個(gè)默認(rèn)的初始值 null。

即便數(shù)字也是如此,因?yàn)樵?Dart 中一切皆為對(duì)象。

int? count;
assert(count == null);

assert() 的調(diào)用將會(huì)在生產(chǎn)環(huán)境的代碼中被忽略掉。

在開發(fā)過程中,assert(condition) 將會(huì)在 條件判斷 為 false 時(shí)拋出一個(gè)異常。詳情請(qǐng)查閱 Assert。

變量的類型推斷修飾符

在變量聲明時(shí),也可以不同指定變量類型,而是使用Dart的類型推斷(Dart分析器analyzer的類型推斷),自動(dòng)推斷出一個(gè)變量的類型。【如果無法推斷出類型,將會(huì)作為dynamic類型使用】

var關(guān)鍵字用于普通變量的類型推斷。

比如下面,會(huì)自動(dòng)推斷出變量a為String,b為int:

var a="a";
var b=1;

final、const用于修飾一個(gè)常量,但同時(shí)也可以起到var關(guān)鍵字的類型推斷的作用。

finalconst變量只可以被賦值一次,之后不允許修改。

一個(gè) const 變量是一個(gè)編譯時(shí)常量(const 變量同時(shí)也是 final 的),必須在聲明時(shí)賦值。final也可以稱作運(yùn)行時(shí)常量。

void foo(){
  final k;
  k=10;
  // k=20; // 只能賦值一次
  const m="m";
  // m="k"; // 不允許修改。
}

const可以用來創(chuàng)建常量值(值是常量,并不是前面的變量是常量。) 

var foo = const [];
foo=[1,2];

實(shí)例變量可以是final的但不可以是const。const要修飾類中的變量,必須在前面加上static關(guān)鍵字。

class MyClass{
  var a="a";
  static const c=10;
  final f="final";
}

通常,不是很推薦使用類型推斷,因?yàn)閷?duì)于編寫者和閱讀者,明確變量類型非常重要。

Late變量

Dart 2.12引入了late修飾符,作用是:

  • 聲明一個(gè)可以在聲明之后初始化的非空變量
  • 懶初始化一個(gè)變量。

第一個(gè)作用主要針對(duì)頂層變量或?qū)嵗兞?,即上面所說的不可空變量必須在聲明時(shí)初始化的情況。

如果只是想聲明一個(gè)變量,僅僅在用到時(shí)再賦值,并且Dart不允許這樣做時(shí),可以在該變量聲明前添加late修飾符:

late String name_late;
void foo(){
  name_late='late變量';
  print(name_late);
}

即使聲明late變量時(shí)初始化賦值,也只會(huì)在該變量第一次使用時(shí)進(jìn)行初始化。一般在以下兩種情況時(shí)使用懶初始化(lazy initialization)非常方便:

  • 變量可能不是必須的,并且初始化非常耗時(shí)。
  • 初始化的實(shí)例變量的初始化器需要訪問this。

比如下面的temperature變量,如果從不使用,對(duì)應(yīng)的開銷很大的readThermometer()函數(shù)也將從不會(huì)被調(diào)用。

late String temperature = readThermometer(); // Lazily initialized.

類型判斷is和類型轉(zhuǎn)換as

is用于判斷變量的類型。如果對(duì)象是指定類型則返回 true。

if (p is Person) {
  p.Name = 'xxx';
}

as類型轉(zhuǎn)換:

(p as Person).Name = 'Bob';

一些重要概念

Dart中一切皆對(duì)象

空安全和可空類型?

如果開啟了空安全,變量在未聲明為可空類型時(shí)不能為 null。

在類型后添加問號(hào)(?)可將類型聲明為可空。如int?表示整型或null。

可以通過Object?、Objectdynamic顯式聲明一個(gè)任意類型。

dynamic會(huì)推遲到運(yùn)行時(shí)執(zhí)行類型檢查,通常應(yīng)避免使用 dynamic 類型。

Dart支持頂層函數(shù)(如main())、類或?qū)ο蟮暮瘮?shù)(靜態(tài)方法和實(shí)例方法),也可以在函數(shù)內(nèi)創(chuàng)建函數(shù)(函數(shù)嵌套或本地函數(shù))

top-level functions

Dart支持頂層變量、類或?qū)ο蟮淖兞浚o態(tài)變量和實(shí)例變量)。實(shí)例變量也稱為字段或?qū)傩浴?/p>

Instance variables are sometimes known as fields or properties

表達(dá)式和語句

Dart語法中分為

  • 表達(dá)式(expressions)—— 有運(yùn)行時(shí)值,即有返回值的是表達(dá)式。
  • 語句(statements)—— 沒有運(yùn)行時(shí)值,即語句沒有返回值。

一條語句通常包含一個(gè)或多個(gè)表達(dá)式,相反表達(dá)式不能直接包含語句。

例如,條件表達(dá)式 condition ? expr1 : expr2 的值可能是 expr1expr2。將其與 if-else 語句相比較,if-else 語句沒有值。

比如 a==null、a!=null 就是一個(gè)條件表達(dá)式,其返回false或true值。

if(a==null){ } 就是一個(gè)if語句,或者條件語句。

Dart沒有public、protected和private類似的成員訪問限定符

如果一個(gè)標(biāo)識(shí)符以下劃線 (_) 開頭,則表示該標(biāo)識(shí)符在庫(kù)內(nèi)是私有的。

underscore (_)

注釋

注釋是編程中的說明性文字,對(duì)代碼起到解釋說明的作用。不參與實(shí)際的代碼執(zhí)行。

  • 單行注釋://
  • 多行注釋:/* 開始,*/ 結(jié)尾,中間的內(nèi)容為注釋

DartPad

DartPad頁(yè)面是一個(gè)可以在瀏覽器中運(yùn)行Dart語言的線上工具。

對(duì)于一些測(cè)試代碼、臨時(shí)運(yùn)行的代碼,可以直接在DartPad運(yùn)行查看。

也可以根據(jù)需要將DartPad進(jìn)入到自己的站點(diǎn)網(wǎng)頁(yè)內(nèi),方便查看運(yùn)行代碼。

參考

Dart 開發(fā)語言概覽

以上就是Flutter入門學(xué)習(xí)Dart語言變量及基本使用概念的詳細(xì)內(nèi)容,更多關(guān)于Flutter入門Dart語言變量的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Dart多態(tài)控制反轉(zhuǎn)編碼規(guī)范實(shí)例詳解

    Dart多態(tài)控制反轉(zhuǎn)編碼規(guī)范實(shí)例詳解

    這篇文章主要為大家介紹了Dart多態(tài)控制反轉(zhuǎn)編碼規(guī)范實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Dart?異步編程生成器及自定義類型用法詳解

    Dart?異步編程生成器及自定義類型用法詳解

    這篇文章主要為大家介紹了Dart?異步編程生成器及自定義類型用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 谷歌Sky語言怎么樣?什么是Dart編程語言?

    谷歌Sky語言怎么樣?什么是Dart編程語言?

    據(jù)外媒報(bào)道,在日前舉行Dart開發(fā)者峰會(huì)上,谷歌對(duì)外正式展示了Android最新的開發(fā)語言Sky,據(jù)悉,Sky本質(zhì)上就是谷歌自主的網(wǎng)頁(yè)開發(fā)語言Dart.
    2015-05-05
  • 淺析Dart語言的異步處理

    淺析Dart語言的異步處理

    Dart是一個(gè)單線程語言,我們?cè)谔幚砗臅r(shí)操作的時(shí)候使用stream或者future來實(shí)現(xiàn),在這篇文章中我們將簡(jiǎn)單的給大家聊一聊Dart語言的異步處理
    2023-06-06
  • Flutter?圖片開發(fā)核心技能快速掌握教程

    Flutter?圖片開發(fā)核心技能快速掌握教程

    這篇文章主要為大家介紹了Flutter?圖片開發(fā)核心技能快速掌握教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Flutter Dart快速排序算法示例詳解

    Flutter Dart快速排序算法示例詳解

    這篇文章主要為大家介紹了Flutter Dart快速排序算法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 一文詳解Dart如何實(shí)現(xiàn)多任務(wù)并行

    一文詳解Dart如何實(shí)現(xiàn)多任務(wù)并行

    這篇文章主要為大家介紹了Dart如何實(shí)現(xiàn)多任務(wù)并行示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 8個(gè)Dart中令人驚艷的用法詳解

    8個(gè)Dart中令人驚艷的用法詳解

    Dart是谷歌開發(fā)的現(xiàn)代化編程語言,憑借其簡(jiǎn)潔的語法和強(qiáng)大的功能,在開發(fā)者當(dāng)中贏得了極高的聲譽(yù),本文將介紹Dart中的8個(gè)令人驚艷的用法,需要的可以參考下
    2024-01-01
  • flutter中如何使用和擴(kuò)展ThemeData實(shí)現(xiàn)詳解

    flutter中如何使用和擴(kuò)展ThemeData實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了flutter中如何使用和擴(kuò)展ThemeData實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Dart?String字符串的常用方法總結(jié)概述

    Dart?String字符串的常用方法總結(jié)概述

    這篇文章主要為大家介紹了Dart?String字符串的常用方法概述,總結(jié)整理了大概4000多字,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論