Dart 基礎(chǔ)數(shù)據(jù)類(lèi)型

Dart 基礎(chǔ)數(shù)據(jù)類(lèi)型

如何學(xué)習(xí)一門(mén)新的語(yǔ)言?

建立興趣

對(duì)于學(xué)習(xí)來(lái)說(shuō)每個(gè)人都有自己的方式和方法,每個(gè)人的習(xí)慣和思維模式都不太一樣,但每當(dāng)碰到這個(gè)問(wèn)題的時(shí)候,很多的人都會(huì)選擇以很難來(lái)逃避,記得之前GitHub上有一則很有趣的事情,NodeJS的發(fā)明者,又推出了一個(gè)新的框架,本來(lái)時(shí)間很好的事情,有個(gè)哥們就提了一個(gè)issuess說(shuō)求大神別再更新了,學(xué)不動(dòng)了。這個(gè)同學(xué)這樣的想法并非他一個(gè)人所面臨的,很多人都有這樣的想法。但是時(shí)代進(jìn)步的腳步是不會(huì)停止的,我們需要面臨的新鮮事物會(huì)層出不窮,不單單是技術(shù)這方面,其他生活方面也是一樣。所以我們不能逃避或者退縮,新鮮的事物總有新鮮之處,你若想了解他,就去研究他,自然就會(huì)產(chǎn)生興趣。千萬(wàn)不要為了追趕而去學(xué)習(xí),要建立興趣,一旦興趣建立了,人也就主動(dòng)了,思維也會(huì)隨之變得開(kāi)闊起來(lái),自然而然學(xué)習(xí)就不是問(wèn)題了。

學(xué)習(xí)新語(yǔ)言

學(xué)習(xí)一門(mén)新的技術(shù)語(yǔ)言,即使并不是很難,和我們?nèi)藢W(xué)說(shuō)話是差不多的,從咿呀學(xué)語(yǔ)到侃侃而談。<br />學(xué)習(xí)程序語(yǔ)言也是這樣,最開(kāi)始模仿到熟練。大致的思路如下

  1. 簡(jiǎn)單瀏覽技術(shù)文檔
  2. 從最簡(jiǎn)單開(kāi)始,不要眼高手低
  3. 模仿別人已經(jīng)寫(xiě)好的代碼自己去敲一邊,運(yùn)行結(jié)果
  4. 思考代碼的意思,遇到不會(huì)的點(diǎn)再仔細(xì)去看相關(guān)的文檔
  5. 總結(jié)學(xué)習(xí)的知識(shí)點(diǎn)
  6. 研究更深入的問(wèn)題<br /><br />

簡(jiǎn)單的來(lái)說(shuō)就是,先學(xué)會(huì)用,然后熟練會(huì)用,最后達(dá)到知道會(huì)用,前期照貓畫(huà)虎,后期升華。

Dart語(yǔ)言介紹

直接引用維基百科關(guān)于Dart的介紹

類(lèi)似JavaScript,Dart也是一種面向?qū)ο笳Z(yǔ)言,但是它采用基于類(lèi)編程。它只允許單一繼承,語(yǔ)法風(fēng)格接近C語(yǔ)言。

Dart Hello World

void main() {
  print("hello world");
}

Dart語(yǔ)言提供的基礎(chǔ)數(shù)據(jù)類(lèi)型

numbers

int 整數(shù)

在Dart VM上值的范圍為-2到2 - 1,編譯為Javascript使用的Javascript的num實(shí)現(xiàn)兼容,允許值為-2到2 - 1
<a name="double"></a>

double

雙精度浮點(diǎn)數(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中字符串可以用單引號(hào)也可以使用雙引號(hào)



  //單引號(hào)
  var str = 'hello';
  //雙引號(hào)
  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;
  //獲取字符串的長(zhǎng)度
  str.length;
  //獲取莫一個(gè)字符所當(dāng)前字符串的索引
  str.indexOf('a');
  //替換str中所有的a為b
  str.replaceAll('a', 'b');
  //以某個(gè)特殊字符分割當(dāng)前字符串 返回一個(gè)數(shù)組
  str.split(',')
  

string中還有其他的相關(guān)API,可以自行查看官方文檔

booleans

真或假,true或false

lists

類(lèi)似與javascript中的數(shù)組


  //空集合
  var list = [];
  //list 的長(zhǎng)度
  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的元素點(diǎn)到 [1,2,3] -> [3,2,1]
  list.reversed;

sets

存放不重復(fù)元素的集合,類(lèi)似與不重復(fù)的list

maps

存放key,value的集合{"name":"張三"}

var map =  {};

  //獲取map的元素個(gè)數(shù)
  map.length;
  //添加元素
  map.putIfAbsent('name', ()=>'zhangsan'));
  //獲取map中的所有key
  map.keys;
  //獲取map中所有的value
  map.values;

  //判斷map中是否包含某一個(gè)給定的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語(yǔ)言中對(duì)于為初始化的值統(tǒng)一默認(rèn)為null,不管是字符串還是數(shù)值類(lèi)型。

其他數(shù)據(jù)類(lèi)型

Dart中還提供了 runes symbols 在此后的文章中會(huì)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容