1、數(shù)值類型:num
在java中的八大基本數(shù)據(jù)類型磁浇,dart 中都可以用數(shù)值類型來表示斋陪,dart中數(shù)值類型只有兩種:int 和double;整型和浮點型,它們的父類都是? num;
int? :表示整型扯夭;
int 在java中占4個字節(jié)鳍贾;在dart中,如果編譯成javaScript 的時候占32bit(4個字節(jié))交洗,默認是64bit,因此dart中int的長度應該是根據(jù)環(huán)境來確定的骑科,此處可以看作了java 一致;
在Dart中构拳,我們可以將你int當成java中的short咆爽、int梁棠、long來使用,如果我們寫的dart聲明的變量超過了4個字節(jié)斗埂,那么Dart會將其編譯成類似java中的long,否則編譯成java中的short或者int;
java中int 是基本數(shù)據(jù)類型符糊,Dart中int 是類,所以兩者的字節(jié)占用大小是沒有可比性的呛凶;
double:表示浮點型男娄;
dart? 中沒有float類型,只有double漾稀,表示浮點型都用double表示模闲;與java類似;
2崭捍、字符串類型:String
????基本使用:
?????????與java沒有什么區(qū)別尸折;
? ????????String str = "hello";//聲明一個字符串
字符串拼接比較:
? ??????java寫法:
? ??????1、可以使用 + 號進行字符串拼接(會生成多個對象殷蛇,不推薦)实夹;
String str = "hello";
String txt = str+10+"美女,晚上好"粒梦;
? ??????2亮航、可以使用?stringbuffer/stringbuilder/format 進行拼接;
int i = 2;
String str ="1";
String? format =String.format("%s%d",str,i);
? ??????dart寫法:
String str ="你好,";
int num = 10;
String txt = "$str你是$num號美女嗎匀们?"
print(txt);
輸出結果:你好塞赂,你是10號美女嗎?
注意:
1昼蛀、??符號后面跟的是變量;
2如果后面跟的是字符或者數(shù)字圆存,則需要{ }將其括起來叼旋,否則編譯其無法判定哪個字符串是變量误褪。例如:
String str ="你好,";
int num = 10;
String txt = "${str}sam,你是$num號美女嗎些膨?"
print(txt);
輸出結果:你好擦俐,sam,你是10號美女嗎够颠?
字符串聲明
? ??java寫法
? ??????String text ="我是一個字符串";
dart:寫法
? ??????單引號聲明?
String text =‘我是一個Dart 字符串’蟆湖;
? ??????雙引號聲明
String text =“我是一個雙引號聲明的Dart 字符串”塔拳;
字符串轉(zhuǎn)義
? ??java寫法
String? s = "\"帶有雙引號的字符串"\" 吁伺;
String? n = "\\n這是一個換行的字符串" 涛酗;
? ??dart寫法
/**單雙引號使用*/
String dartS = '" 帶有雙引號的dart字符串 "'陌兑;
String dartS1 = “'帶有單引號的dart字符串 '”沈跨;
String? n = "\\n這是一個換行的字符串" ;//可以使用java中的方式
String? n1 = r"\n這是一個換行的字符串" 兔综;//dart中使用方式饿凛,r前綴狞玛, raw:原始,表示字符串中所有的換行涧窒、制表等符號保持不變
/**三引號使用心肪,多行字符串的聲明*/
String? moreText = """第一行文字
第二行文字
第三行文字
第四行文字
....
""";
3、布爾類型 :bool
? ? ? ? ? ?與java一致纠吴,沒什么可說的硬鞍;
4、數(shù)組類型:List
? ??dart寫法
? ??????數(shù)組聲明
List<String> list = new List();//聲明一個帶有泛型的數(shù)組
List<String> list = List();//new 關鍵字可以省略
List<int>list2 =[1,2,3,4,5];//可以在聲明時直接賦值戴已,java中則不可以固该;
? ??????數(shù)組值的獲取
像java數(shù)組一樣通過下標取元素
int item0=list2[0];
? ??????遍歷數(shù)組
//使用foreach 循環(huán)進行遍歷
for (var? item? in list2 ){
print ( item)
}
//使用for循環(huán)進行遍歷
for (var j = 0 ;j< list2 .length; ++j){
print ( list2 [j] )
}
? ??? ??不可變的數(shù)組聲明
????????List<int >list1 = const [1,2,3];//數(shù)組被const 修飾,不可改變
? ? ? ? list1=[3,4,5];?//可以修改引用
????????
list1.add(1);//此處雖在編譯時不會報錯恭陡,但運行時會報錯蹬音;
const 修飾的是[1,2,3]這一個對象,表示這個對象不可變休玩,不能在add元素了著淆;
? ?以上代碼報以下錯誤:
?????????const??List<int >list1 = [1,2,3];//數(shù)組被const 修飾,不可改變? ? ? ? ?
list1=[3,4,5];//此處在編譯時會報錯拴疤;? ? ? ?
?list1.add(1);//同樣不運行添加元素永部;
?const 修飾的是變量,也就是引用呐矾,那么變量不能夠再引用其他對象了苔埋;
由此可見,const在修飾誰時蜒犯,誰就是不可變的组橄!與c\c++類似;
5罚随、映射集合:Map
?? ??????與java類似
????????Map <int , int >map = {1:1, 2:2, 3:3 };
? ? ? ?通過下標獲取元素
? ? ? ?int value=? map[1];//注意里面的1是key玉工,不是下標;
????????修改元素
????????map[1]= 100;
????????不可變集合
????????于List 類似淘菩,同List;
? ? ? ? ?遍歷map與java一樣
6遵班、Unicode:Runes
? ? ? ? ? ?(Unicode32)特殊字符表示類、用于表示一個表情符號潮改、
? ? ? ? ? ? 此類型在開發(fā)中幾乎用不到狭郑,此處不做詳細說明
7、標識符:Symbols
????????類似c/c++中的宏
? ? ? ? ? 此類型在開發(fā)中幾乎用不到汇在,此處不做詳細說明