新聞中心
Flutter入門-Dart面向?qū)ο笤?/h2>
Dart作為高級語言,支持面向?qū)ο蟮暮芏嗵匦?,并且支持基于mixin的繼承方式,基于mixin的繼承方式是指:一個(gè)類可以繼承自多個(gè)父類,相當(dāng)于其他語言里的多繼承。所有的類都有同一個(gè)基類Object,這和特性類似于Java語言,Java所有的類也都是繼承自O(shè)bject,也就是說一切皆對象。
創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對雨棚定制等多個(gè)領(lǐng)域擁有豐富的營銷推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
Dart 是一門面向?qū)ο蟮恼Z言, 全部的類都是繼承自 Object , 除了支持傳統(tǒng)的 繼承、封裝、多態(tài) , 還有基于組合(Mixin-based)的繼承特性
類型推導(dǎo)(var/final/const)
var
final和const的區(qū)別
3.非零即真( )
4.字符串
5.集合
Dart中變量初始值為null,即使是int類型也可以是null(java中int默認(rèn)是0, boolean默認(rèn)是false); Dart支持自識別,可以是用var定義變量,也可以直接指定具體類型; final或者const都可修飾不可變的變量,final變量只能賦值一次,const是編譯時(shí)常量。
int和double是num子類,沒有float類型; 支持字符串模板,用${expression}的方式來實(shí)現(xiàn)字符串效果,類似如字符串拼接; String可以使用單引號或者雙引號; Dart沒有數(shù)組,只有列表; 其中List,Set,Map不是抽象接口,是具體實(shí)現(xiàn)類,可直接使用; Map的key沒有指定類型,key類型不一致不會報(bào)錯(cuò);key不能相同,但是value可以相同,value可以為null。 var name = 'Tom';
方法也是對象,方法可賦值給一個(gè)變量; 如果方法的參數(shù)是解構(gòu)出來的可以通過 @required 注解標(biāo)注為必填 const Scrollbar({Key key, @required Widget child}); 支持可選參數(shù),可選命名參數(shù)用{}包圍,可選位置參數(shù)寫在最后并且使用[]包圍 String say(String from, String msg, [String device]); 支持默認(rèn)參數(shù) void enableFlags({bool bold = false, bool hidden = false}) {…}; 以_開頭的方法都是私有的。 void main() {
支持閉包,閉包能夠訪問外部方法內(nèi)部的局部變量
1.空替換?? expr1 ?? expr2,如果expr1是non-null,返回其值。否則執(zhí)行expr2并返回其結(jié)果; 2.條件成員訪問?.P?.y = 4; 如果p是non-null,則設(shè)置y的值等于4; 3.類型判定操作符(as,is,is!); 4.級聯(lián)操作,可以在同一個(gè)對象上連續(xù)調(diào)用多個(gè)函數(shù)以及訪問成員變量;
和java不同的是,Dart可以拋出任意類型的對象; 程序不會強(qiáng)制要求開發(fā)中處理異常,但若發(fā)生異常,程序會中斷; 其中異常主要分為Error和Exception兩種類型。
創(chuàng)建對象可以不使用new關(guān)鍵字; Dart中沒有public,private,protected這些關(guān)鍵字; 沒有interfaces關(guān)鍵字,每一個(gè)類都是一個(gè)接口。我們可以用抽象類來類比java中的接口; Dart把多重繼承的類叫做Mixins。
支持語法糖 Point(this.x, this.y); 每個(gè)實(shí)例變量都會自動生成一個(gè)getter方法,Non-final變量還會自動生成一個(gè)setter; 命名構(gòu)造函數(shù),使用命名構(gòu)造函數(shù)可以為一個(gè)類實(shí)現(xiàn)多個(gè)構(gòu)造函數(shù),也能更加清晰的表明你的意圖;
斷言是如果條件表達(dá)式不滿足則停止代碼執(zhí)行; 斷言只在檢查模式下運(yùn)行有效,如果在生產(chǎn)模式下運(yùn)行則不會執(zhí)行。
Dart 以兩種模式運(yùn)行: Dart 1.x 有生產(chǎn)模式和檢查模式兩種模式, Dart 2.x 中移除了檢查模式。
注:建議在開發(fā)/測試模式中使用 檢查模式 運(yùn)行 Dart VM ,因?yàn)樗鼤砑泳婧湾e(cuò)誤以幫助開發(fā)和調(diào)試過程;選中的模式會強(qiáng)制執(zhí)行各種檢查,例如類型檢查等。
dart標(biāo)識符可以包括字符和數(shù)字,但不能以 數(shù)字開頭 。
Dart 是一種面向?qū)ο蟮木幊陶Z言。
代碼說明:定義了一個(gè)類 TestClass ,這個(gè)類擁有一個(gè)方法 disp() ,方法可以實(shí)現(xiàn)在終端打印字符串 Hello Dart! ,使用 new 關(guān)鍵字創(chuàng)建類的對象,該對象調(diào)用方法 disp() 。
關(guān)于dart的學(xué)習(xí)還有很多;我列出如下: Flutter高級工程師進(jìn)階學(xué)習(xí)資料;需要可以私信我。發(fā)送“核心筆記”或“手冊”,即可領(lǐng)取資料!
flutter webwiew銷毀時(shí)間
在Widget銷毀之前將WebView的監(jiān)聽和view銷毀掉。
flutter生命周期大體上可以分為三個(gè)階段:初始化、狀態(tài)變化、銷毀。
1、初始化階段
對應(yīng)執(zhí)行構(gòu)造方法和initState時(shí)候2、狀態(tài)變化階段
開新的widget或者調(diào)用setState方法的時(shí)候
3、銷毀階段
deactivate和dispose
二、生命周期階段執(zhí)行的函數(shù)
1、initState調(diào)用次數(shù):1次
插入渲染樹時(shí)調(diào)用,只調(diào)用一次,widget創(chuàng)建執(zhí)行的第一個(gè)方法,這里可以做一些初始化工作,比如初始化State的變量。2、didChangeDependencies調(diào)用次數(shù):多次
初始化時(shí),在initState()之后立刻調(diào)用
當(dāng)依賴的InheritedWidgetrebuild,會觸發(fā)此接口被調(diào)用。實(shí)測在組件可見狀態(tài)變化的時(shí)候會調(diào)用
3、build調(diào)用次數(shù):多次初始化之后開始繪制界面。setState觸發(fā)的時(shí)候會
4、didUpdateWidget調(diào)用次數(shù):多次組件狀態(tài)改變時(shí)候調(diào)用。
5、deactivate當(dāng)State對象從樹中被移除時(shí),會調(diào)用此回調(diào),會在dispose之前調(diào)用。頁面銷毀的時(shí)候會依次執(zhí)行:deactivatedispose
6、dispose調(diào)用次數(shù):1次當(dāng)State對象從樹中被永久移除時(shí)調(diào)用;通常在此回調(diào)中釋放資源。
7、reassemble在熱重載(hotreload)時(shí)會被調(diào)用,此回調(diào)在Release模式下永遠(yuǎn)不會被調(diào)用。
2021年最受程序員歡迎的開發(fā)工具TOP 50名單出爐-
對于每一個(gè)開發(fā)者而言,開發(fā)工具就相當(dāng)于他們的武器,選擇一個(gè)合適的工具能夠幫助我們在工作時(shí)事半功倍,在互聯(lián)網(wǎng)逐漸發(fā)展成熟的今天,越來越多的開發(fā)工具供我們選擇,但其中總有一些更好用的,如何選擇成為了一大難題。
從而頒布了2021年StackShare第八屆頂級工具獎,快來看看有沒有你青睞的開發(fā)工具吧。
年度最佳新興工具
1.FastAPI
FastAPI 是一個(gè)使用 Python3.6+ 構(gòu)建 Web API 的高性能框架。根據(jù)框架創(chuàng)建者的說法,F(xiàn)astAPI 性能與 NodeJS 或 Golang 相當(dāng)。
2.GitHub Copilot
作為一款 AI 結(jié)對編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補(bǔ)全與建議功能,但在實(shí)際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開發(fā)的 Codex AI 系統(tǒng)。
3.FiglamFigma
Figma 是一個(gè) 基于瀏覽器 的協(xié)作式 UI 設(shè)計(jì)工具,從推出至今越來越受到 UI 設(shè)計(jì)師的青睞,也有很多的設(shè)計(jì)團(tuán)隊(duì)投入了Figma 的懷抱,
4.Logtail
Logtail是日志服務(wù)提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云廠商等服務(wù)器上的日志。本文介紹Logtail的功能、優(yōu)勢、使用限制及配置流程等信息。
5.Coder
開發(fā)人員工作區(qū)平臺·
6.Charts.csscss
Charts.css 是用于數(shù)據(jù)可視化的開源 CSS 框架,幫助用戶理解數(shù)據(jù),幫助開發(fā)人員使用簡單的 CSS 類將數(shù)據(jù)轉(zhuǎn)換為漂亮的圖表?!?/p>
7.Counter
簡單并且免費(fèi)的網(wǎng)絡(luò)分析·
8.React Query
React Query是一個(gè)庫,可為任何類型的異步數(shù)據(jù)提供ReactJS狀態(tài)管理功能。根據(jù)他們的官方文件,·
9.vscode.dev
將VS Code引入瀏覽器,構(gòu)建一個(gè)可以在瀏覽器中完全無服務(wù)器運(yùn)行的開發(fā)工具。
10.BookStack
BookStack 是一個(gè)開源的、基于 Laravel + Vue.js 構(gòu)建的知識管理和服務(wù)平臺。具有簡單但功能強(qiáng)大的所見即所得編輯器,允許團(tuán)隊(duì)輕松創(chuàng)建詳細(xì)且有用的文檔。·
11.ThunderClient
Thunder Client 為我們提供了一款輕量級、易用、整潔、簡單的 Rest API 客戶端擴(kuò)展?!の覀兛梢岳?Thunder Client 在編輯器內(nèi)快速測試代碼庫的 API 端點(diǎn),從而最大限度地減少頁面的切換。它可以替代 Postman,作為常用的無腳本測試工具。
12.Quod AI
Quod AI Code Search是一個(gè)由人工智能驅(qū)動的Chrome擴(kuò)展,可以自動從Git存儲庫或Jira問題中搜索代碼。
它使用問題的標(biāo)題和描述,并自動在你的Git存儲庫中找到匹配的內(nèi)容。
13.Dendron
Dendron 是典型的開源社區(qū)編程思維的解決方案,雖然初看起來有一點(diǎn)學(xué)習(xí)曲線,但從根本上是給了使用者最大的自由發(fā)揮空間,同時(shí)又提供了最強(qiáng)大和最徹底的工具生態(tài)支持?!?/p>
14.Notion API
把概念和你每天使用的工具聯(lián)系起來·
15.Github1s
只需1秒,就可以用VS Code方式來看GitHub代碼?!?/p>
16.Ocean
容器的無服務(wù)器基礎(chǔ)架構(gòu)引擎·
17.Magic
快速構(gòu)建應(yīng)用程序,可定制,無密碼登錄
·
18.Jina
更簡單的一種在云上構(gòu)建神經(jīng)搜索的方法,
19.Focalboard
一款開源、本地存儲、免費(fèi)的類 Notion 應(yīng)用Focalboard 的自我定位是“Trello、Notion 和 Asana 的開源、自托管替代品”?!?/p>
20.zx
更好地編寫腳本的工具(By Google)
21.OpenSearh
OpenSearch是阿里云開放搜索簡稱,為解決用戶結(jié)構(gòu)化數(shù)據(jù)搜索需求的托管服務(wù),支持?jǐn)?shù)據(jù)結(jié)構(gòu)、搜索排序、數(shù)據(jù)處理自由定制。·
22.Querybook
一個(gè)可以發(fā)現(xiàn)、創(chuàng)建和共享數(shù)據(jù)分析、查詢以及表的大數(shù)據(jù)IDE(通過Pinterest),
23.MangoDB
MongoDB是一款為web應(yīng)用程序和互聯(lián)網(wǎng)基礎(chǔ)設(shè)施設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng)。MongoDB就是數(shù)據(jù)庫,是NoSQL類型的數(shù)據(jù)庫
24.TooIJet
Retool的開源替代品·
25.Kitemaker
Kitemaker是為團(tuán)隊(duì)而非經(jīng)理創(chuàng)建的超快速問題跟蹤器。為遠(yuǎn)程團(tuán)隊(duì)創(chuàng)建的Jira的快速替代方案·
26.Appflowy
Appflowy 是一款使用 Flutter 和 Rust 構(gòu)建的開源筆記軟件,它支持Windows、macOS和Linux,可以免費(fèi)下載使用
27.Kubegres
Kubegres 是一個(gè) Kubernetes Operator,用來部署并維護(hù) PostgreSql 集群,提供開箱即用的數(shù)據(jù)復(fù)制和故障轉(zhuǎn)移功能,簡化 PostgreSql 集群生命周期管理,降低數(shù)據(jù)復(fù)制的復(fù)雜性
28.Lightning Web Components
Lightning Web Components,業(yè)內(nèi)簡稱LWC,是Salesforce于Spring 19發(fā)布的一款新型Lightning Component,快速的企業(yè)級Web組件基礎(chǔ)
29.Judo
用無代碼構(gòu)建原生應(yīng)用體驗(yàn)
30.Apache APISIX
Apache APISIX Apache APISIX是一個(gè)動態(tài)、實(shí)時(shí)、高性能的API網(wǎng)關(guān)。提供了豐富的流量管理功能,如負(fù)載均衡、動態(tài)上游、canary釋放、斷路、認(rèn)證、可觀察性等。
31.Control
提供免費(fèi)的加速、自動化安全性以及SOC2合規(guī)
32.Remix
專注于Web技術(shù)和現(xiàn)代 用戶體驗(yàn)的框架
33.NocoDB
免費(fèi)并且開源的Airtable替代方案
34.JetBrainsQodana
評估你擁有的、合同或購買的代碼的完整性
35.TabnineAI
只能代碼編寫
36.Coolify
一個(gè)開源的,自適應(yīng)的Heroku和Netlify的替代品
37.Penpot
開源設(shè)計(jì)和原型平臺
38.Portman
Postman介紹:postman是一個(gè)開源的接口測試工具,無論是做單個(gè)接口的測試還是整套測試腳本的撥測都非常方便。
39.Devops Stack
持續(xù)部署Kubernetes環(huán)境
40.Slidev
面向開發(fā)人員的演示幻燈片
41.ReScript
ReScript 是一門針對 JavaScript 程序員的新語言,特別是對 TypeScript 和 Flow 的類型安全感興趣的程序員。ReScript 的語法和 JavaScript 非常相似
42.Fig
自定完成終端
43.FlutterFlow
Flutterflow 是一個(gè)在線低碼平臺,使人們在視覺上以人們在視覺上構(gòu)建本機(jī)移動應(yīng)用程序。
44.Porter
運(yùn)行在你自己的云中的Heroku
45.SigmaOS
在 SigmaOS 中,你會看到完全不同的瀏覽器布局,它更像是一個(gè)工作臺
46.VictoeiaMetrics DB
快速、低成本的監(jiān)控解決方案和時(shí)間序列數(shù)據(jù)庫
47.CloudflarePages
JAMstack平臺為前端開發(fā)者提供協(xié)作和部署網(wǎng)站的平臺
48. Devbook
面向開發(fā)者的搜索引擎
49.Front Matter
直接在VS Code中管理靜態(tài)站點(diǎn)
50.Supacase UI
用于企業(yè)儀表的React組件庫
以上可以說是集結(jié)了開發(fā)行業(yè)中的所有“神器”,不僅能助力程序員高效工作,也是今后走向開發(fā)崗位小伙伴們的加薪工具。小伙伴可以從中挑選適合自己的工具~
網(wǎng)頁題目:包含flutter閉包釋放的詞條
文章鏈接:http://fisionsoft.com.cn/article/dsedhjd.html