Dart語言開啟微信h5三公牛牛網站平臺開發研究之路
dart語言一直不慍不火,默默成長,如微信h5三公牛牛網站平臺開發搭建聯絡Q1687054422前往h5.fanshubbs.com,但是隨著谷歌的慢慢發力,這種語言前景越來越光明,它屬於全棧式的語言,既能前端,也能後端。
我今天無聊開始研究下這門語言,dart算是什麼語言呢?它可以編譯成為JS,因此可以成為WEB開發的選擇,同時在本地它也可以擁有虛擬機器,也能開發伺服器之類的程式。
在目前多如毛的語言中,任何一門語言出來面世,都要和其他語言做比較,看看它有什麼優勢,有什麼樣的用途。
先看看執行效率。
目前執行效率第一的是C/C++(對於我們這種從事網際網路的人來說,相信極少人去用匯編),其次RUST,再次是GO,OBJECT-C等,這是大家公認的,緊隨其後的是JAVA、C#、或者delphi之類的等等。
拿JAVA做比較最好,因為JAVA語言在目前的網際網路中,用途極為廣泛:網站伺服器,遊戲伺服器、也能做科學資料分析,更能做出高效能的資料佇列快取,以上這麼多成功的例子中,說明它的執行速度極為不平凡。
至於安卓為什麼那麼卡,那是因為與蘋果的對比把安卓給踢下去了,造成不好的印象,仔細想想,當年蘋果手機6000元以上,而安卓手機那時候不過千元左右,甚至很多人購買幾百元的安卓手機,價格相差這麼大,安卓想不卡都不行,安卓一卡,結果JAVA背上了黑鍋。
1:整數計算對比
JAVA程式碼:
long sum=0;
long t = (System.currentTimeMillis());
for (int i = 0; i <20000; i++) {
for (int n = 0; n < 20000;n++) {
sum=(sum+i*n);
}
}
System.out.println(sum);
System.out.println((float) (System.currentTimeMillis() - t) );
}
執行結果:
39996000100000000
1466.0 (備註:毫秒)
Dart語言程式碼如下:
import 'dart:math';
void main(){
DateTime now = new DateTime.now();
var sum=0;
for (var i = 0; i < 20000; i++) {
for (var n = 0; n < 20000; n++) {
sum=sum+i*n;
}
}
DateTime now1 = new DateTime.now();
print(sum);
print(now1.difference(now).inMicroseconds/1000);
print(now);
print(now1);
}
執行結果
39996000100000000
982.608(備註:毫秒)
2018-03-07 02:04:18.102754
2018-03-07 02:04:19.085362
對照下來,整數型的計算中,dart的速度是快過JAVA,而浮點型的運算JAVA快很多了。
JAVA中把程式碼修改為: sum=Math.sqrt(sum+i*n); Dart中把程式碼修改為:sum= sqrt( sum+i*n);
JAVA執行的速度為6755.0毫秒(6.8秒),而Dart的速度為9342.055 毫秒(9.3秒),可以看到JAVA的速度快了三分之一。
這足以說明Dart勝任伺服器語言開發了,因為連python這麼慢的語言,做為遊戲伺服器和網站伺服器開發的比例越來越高了,而PYTHON執行上面的浮點數的程式碼,需要5分鐘。
1:dart資料變數。
dart中定義變數,可用var,也可指定型別,為了開發方便,直接用var,假如伺服器開發中,儘量指定型別。
(為了程式能達到高效能,儘量指定型別,這樣可以減少編譯器的負擔和執行時間,比如上面的程式碼中,var sum=0,和double sum=0.0,它們執行的時間是不同的,指定了型別的執行時間為9.3秒,而用var關鍵詞,時間達到了11.3秒。)
在dart中,任何東西全是物件,比如函式、變數等、所有的物件繼承了Object類。
在dart中可以用final,它的值不能夠被更改,
比如下面程式碼:
final j=10;
j=10;
print(j);
編譯直接報錯,breaking at exception: NoSuchMethodError。即使J的值沒有改變,也會報錯,因為賦值操作使得物件改變了。
在dart中可以用const,它的值也不能夠被更改。
它們兩者的區別是:其中定義final的變數初始化就定義了,而const型別的為編譯時常量,因此也無法改變其值。const和final可以做運算的,比如下面的程式碼:
const aa=10;
const bb=20;
const cc=aa*bb;
print(cc);
final a=10;
final b=20;
final c=a*b;
print(c);
結果為:200,200
2:Dart的內建型別。
1:整型。
整形範圍:-9223372036854775808---9223372036854775807之間,包含這兩個數字。在64位系統上,也就是-2**63~2**63-1之間。
比如定義的時候,也可以用十六進位制:
int x = 110000;
int hex = 0xFFFF;
print(hex);
2:double型別
定義要注意:
double a =10;//錯誤的定義
double B=3+5;//錯誤的定義
double c=3*5;//錯誤的定義
這樣的話定義是錯誤,會提示:A value of type 'int' can't be assigned to a variable of type 'double
必須要這樣定義才是正確的:
double a =10.0;
double b =1+2.5;
double c=3/6;
double和int相加的時候,要注意下面問題:
double a =1.2;
int d=10;
a=a+d;
print(a);
輸出11.2
double a =1.2;
int d=10;
d=a+d;
print(a);
編譯器報錯
double可以等於double+int的,在一些其他的語言中,型別必須嚴格控制的,比如GO語言中,這種寫法是錯誤的,必須double=double+double或者float64=float64+float64。
3:字串型別;
dart中的字串用的是utf-16的編碼格式,有點異類。
dart字串定義,可以用單引號,也可以雙引號。
var s1 = 'hello ';
var s2 = "world.";
print(s1);
print(s2);
print(s1+s2);
輸出結果:
hello
world.
hello world.
char字元或者unicode編碼字元的轉換,有點不同其他的語言,看下面程式碼:
var s1 = 'hello ';
var s2 = "world.";
String a='A';
print(s1);
print(s2);
print(s1+s2);
print(a.codeUnitAt(0));
print((s1+s2).codeUnits);
-----------------
輸出結果:
hello
world.
hello world.
65
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 46]
相關文章
- Flutter開發之Dart語言基礎FlutterDart
- 微信公眾平臺開發入門
- ThinkPhp3.2.1開發的微信平臺PHP
- C#開發——網站應用微信登入開發C#網站
- PHP微信公眾平臺開發視訊PHP
- 微信開發(4):微信第三方開放平臺的搭建(java)Java
- Java開發之路—java語言概述Java
- 微信開放平臺 第三方平臺開發踩坑記錄
- 網站開發的常用程式語言有哪些?網站
- 6.PHP微信公眾平臺開發 - 翻譯功能開發PHP
- 微信行銷平臺快速生成開發框架—KyPHP框架PHP
- 微信公眾平臺開發之店鋪類
- h5與微信小程式直播開發H5微信小程式
- java和.net 雙語言開發框架,開源的PaaS平臺Java框架
- 微信小程式開發平臺新功能「雲開發」快速上手體驗微信小程式
- 7.PHP微信公眾平臺開發 聊天機器人開發PHP機器人
- 4.PHP微信公眾平臺開發 - 簡單回覆功能開發PHP
- 微信開發-微信網頁開發-授權多次回撥網頁
- 微信APP分銷平臺開發有哪些優勢?APP
- ThinkPHP 3.2.2開發微信多使用者管理平臺PHP
- 線上教育平臺微信小程式如何開發建立?微信小程式
- 最右招聘後端開發工程師!go語言c++語言,可加微信:478202433後端工程師GoC++
- VUE開發微信H5頁面總結VueH5
- 5.PHP微信公眾平臺開發 - 天氣預報功能開發PHP
- 微信開放平臺-第三方平臺-全網釋出邏輯
- 微信小程式開發之大神之路最全微信小程式開發教程(視訊+精品文章)微信小程式
- 9.微信公眾平臺開發 - 資料庫操作資料庫
- 1.PHP微信公眾平臺開發(一) 配置介面PHP
- 搭建線上網校平臺時,如何選擇合適的開發語言
- 詩悅網路高薪誠聘H5/微信小遊戲開發高薪H5遊戲開發
- Opensae去中心化交易平臺系統Solidity語言開發中心化Solid
- 使用 TypeScript 開發 Node.js 的微信開放平臺/企業微信/釘釘開放平臺訊息 AES 加密解密庫並且釋出TypeScriptNode.js加密解密
- 微信後臺開發實戰教程
- 手機微信小程式公眾號交友平臺網站定製開發,相親網站系統建設,婚戀相親網站製作微信小程式網站
- 微企匯快速開啟你的微營銷平臺
- 蜻蜓低程式碼安全工具平臺開發之路
- 關於Android開源庫分享平臺,(GitClub)微信小程式的開發體驗AndroidGit微信小程式
- 2.PHP微信公眾平臺開發(二) 公眾平臺示例程式碼分PHP