Dart 基礎(chǔ)數(shù)據(jù)類型
如何學(xué)習(xí)一門新的語言趾牧?
建立興趣
對于學(xué)習(xí)來說每個人都有自己的方式和方法铃在,每個人的習(xí)慣和思維模式都不太一樣遥诉,但每當(dāng)碰到這個問題的時候须床,很多的人都會選擇以很難
來逃避铐料,記得之前GitHub上有一則很有趣的事情,NodeJS的發(fā)明者,又推出了一個新的框架钠惩,本來時間很好的事情柒凉,有個哥們就提了一個issuess說求大神別再更新了,學(xué)不動了妻柒。這個同學(xué)這樣的想法并非他一個人所面臨的扛拨,很多人都有這樣的想法。但是時代進(jìn)步的腳步是不會停止的举塔,我們需要面臨的新鮮事物會層出不窮绑警,不單單是技術(shù)這方面,其他生活方面也是一樣央渣。所以我們不能逃避或者退縮计盒,新鮮的事物總有新鮮之處,你若想了解他芽丹,就去研究他北启,自然就會產(chǎn)生興趣。千萬不要為了追趕而去學(xué)習(xí)拔第,要建立興趣咕村,一旦興趣建立了,人也就主動了蚊俺,思維也會隨之變得開闊起來懈涛,自然而然學(xué)習(xí)就不是問題了。
學(xué)習(xí)新語言
學(xué)習(xí)一門新的技術(shù)語言泳猬,即使并不是很難批钠,和我們?nèi)藢W(xué)說話是差不多的,從咿呀學(xué)語到侃侃而談得封。<br />學(xué)習(xí)程序語言也是這樣埋心,最開始模仿到熟練。大致的思路如下
- 簡單瀏覽技術(shù)文檔
- 從最簡單開始忙上,不要眼高手低
- 模仿別人已經(jīng)寫好的代碼自己去敲一邊拷呆,運(yùn)行結(jié)果
- 思考代碼的意思,遇到不會的點再仔細(xì)去看相關(guān)的文檔
- 總結(jié)學(xué)習(xí)的知識點
- 研究更深入的問題<br /><br />
簡單的來說就是疫粥,先學(xué)會用洋腮,然后熟練會用,最后達(dá)到知道會用手形,前期照貓畫虎,后期升華悯恍。
Dart語言介紹
直接引用維基百科關(guān)于Dart的介紹
類似JavaScript库糠,Dart也是一種面向?qū)ο笳Z言,但是它采用基于類編程。它只允許單一繼承瞬欧,語法風(fēng)格接近C語言贷屎。
Dart Hello World
void main() {
print("hello world");
}
Dart語言提供的基礎(chǔ)數(shù)據(jù)類型
numbers
int 整數(shù)
在Dart VM上值的范圍為-2到2 - 1,編譯為Javascript使用的Javascript的num實現(xiàn)兼容,允許值為-2到2 - 1
<a name="double"></a>
double
雙精度浮點數(shù)
import 'dart:math' as math;
void validationIntAutoConvertToDouble(double first, double second) {
print('a + b = ${first + second}');
}
void main() {
int a = 1;
double b = 1;
print('a + b = ${a + b}');
print('a - b = ${a - b}');
print('a * b = ${a * b}');
print('a / b = ${a / b}');
validationIntAutoConvertToDouble(2, 3);
}
strings
在Dart中字符串可以用單引號也可以使用雙引號
//單引號
var str = 'hello';
//雙引號
var str2 = "hello world";
//多行文本
var multiLineStr = '''
hello world Dart Language
''';
//字符串拼接1
var str3 ='$str' '$str2';
//字符串拼接2 不推薦
var str4 = str + str2;
//字符串截取
var str5 =multiLineStr.substring(1,2);
//判斷字符串是否包含
multiLineStr.contains('2');
//字符串相等
str.compareTo(str2);
//字符串以莫哥字符串結(jié)尾
str.endsWith('aaa');
//判斷字符串為空或非空
str.isEmpty;
str.isNotEmpty;
//獲取字符串的長度
str.length;
//獲取莫一個字符所當(dāng)前字符串的索引
str.indexOf('a');
//替換str中所有的a為b
str.replaceAll('a', 'b');
//以某個特殊字符分割當(dāng)前字符串 返回一個數(shù)組
str.split(',')
string中還有其他的相關(guān)API艘虎,可以自行查看官方文檔
booleans
真或假唉侄,true或false
lists
類似與javascript中的數(shù)組
//空集合
var list = [];
//list 的長度
list.length;
//添加元素
list.add(1);
//移除元素
list.remove(1);
//在list最后添刪除元素
list.removeLast();
//批量添加元素
list.addAll([1,2,3,4]]);
//查找元素1的索引
list.indexOf(1);
//遍歷list元素
for (var item in list) {
print(item);
}
//list排序
list.sort((item1,item2)=>{
return item1<item2;
});
//在指定位置為list添加元素
list.insert(1,3);
//將當(dāng)前l(fā)ist的元素點到 [1,2,3] -> [3,2,1]
list.reversed;
sets
存放不重復(fù)元素的集合,類似與不重復(fù)的list
maps
存放key,value的集合{"name":"張三"}
var map = {};
//獲取map的元素個數(shù)
map.length;
//添加元素
map.putIfAbsent('name', ()=>'zhangsan'));
//獲取map中的所有key
map.keys;
//獲取map中所有的value
map.values;
//判斷map中是否包含某一個給定的value值
map.containsValue('123');
//獲取map中所有的key,value entity
map.entries;
//判斷map為空或非空
map.isEmpty;map.isNotEmpty;
//從map中移除key為name的元素
map.remove('name');
//根據(jù)指定的條件刪除元素
map.removeWhere((key,value)=>key == 'name' && value == '123');
默認(rèn)值
Dart語言中對于為初始化的值統(tǒng)一默認(rèn)為null野建,不管是字符串還是數(shù)值類型属划。
其他數(shù)據(jù)類型
Dart中還提供了 runes
symbols
在此后的文章中會