Flutter學(xué)習(xí)日記(一)--Dart基礎(chǔ)知識(shí)

小伙伴,大家新年好附迷,這是我2021年開始寫的文章啦惧互!前一段時(shí)間不是過年嘛,就懶惰了一段時(shí)間喇伯,但是最近公司這邊也開始確定了接下來的項(xiàng)目都是使用Flutter了喊儡,所以,為了保住飯碗稻据,就毅然決然的走上了Flutter的道路艾猜,關(guān)于Flutter的介紹我就不多說了,大家可以百度下捻悯!
這篇文章主要是說下Dart語言的基礎(chǔ)類型:
1匆赃、數(shù)字類型:主要分為三種,num今缚,int算柳,double,num是數(shù)字類型的父類荚斯,而int和double是整型數(shù)字和雙精度數(shù)字

void _numType() {
    num num1 = -1.0; //是數(shù)字類型的父類
    num num2 = 2; //是數(shù)字類型的父類
    int int1 = 3;
    double d1 = 1.68;
    print("num:$num1  num:$num2 int:$int1 double:$d1");
    print(num1.abs()); //求絕對(duì)值
    print(num1.toInt()); //轉(zhuǎn)換成int
    print(num1.toDouble()); //轉(zhuǎn)換成double
  }

2埠居、字符類型:

 ///字符串
  void _stringType() {
    String str1 = '字符串', str2 = "雙引號(hào)"; //定義字符串可用''也可以用""
    String str3 = 'str:$str1 str2:$str2'; //字符串拼接和kotlin一樣
    String str4 = "常用數(shù)據(jù)類型查牌,清查看控制臺(tái)輸出";
    String str5 = " my name is jeffrey ";
    String str6 = "MY NAME IS JEFFREY";
    print(str3);
    //字符串常用的方法,長度獲取string.length
    //1,字符串的截取,下標(biāo)從0開始事期,截圖不包含最后一位的
    print(str4.substring(1, 5));
    //2,獲取指定字符串的位置
    print(str4.indexOf("類型"));
    //3纸颜,字符串分割String.split(分割點(diǎn))[從什么位置開始分割]兽泣,此分割只留下分割點(diǎn)前面那部分下來
    print(str4.split(",")[0]);
    //4,取當(dāng)前索引位置字符的UTF-16碼,暫時(shí)不知道有什么用
    print(str4.codeUnitAt(0));
    //5,判斷當(dāng)前字符串是否以"常用"開頭胁孙,返回的是布爾類型
    print(str4.startsWith("常用"));
    //6唠倦,判斷當(dāng)前字符串是否以"輸出"開頭称鳞,返回的是布爾類型
    print(str4.endsWith("輸出"));
    //7,把當(dāng)前字符串轉(zhuǎn)換為大寫字母
    print(str5.toUpperCase());
    //8,把當(dāng)前字符串轉(zhuǎn)換為小寫字母
    print(str6.toLowerCase());
    //9,判斷當(dāng)前字符串是否包含指定字符稠鼻,返回布爾類型
    print(str5.contains("is"));
    //10,去除字符串首尾的空格
    print(str5.trim());
    //11,替換第一次出現(xiàn)指定字符位置的字符,參數(shù)1:被替換的指定字符冈止,參數(shù)2:替換的內(nèi)容
    print(str5.replaceFirst("is", "are"));
    //12,全部替換指定的字符
    print(str5.replaceAll("f", "d"));
  }

3候齿、布爾類型:

 ///布爾類型熙暴,Dart是強(qiáng) bool 類型檢查,只有bool 類型的值是true才被認(rèn)為是true
  void _boolType() {
    bool success = true, fail = false;
    print(success || fail); //輸出為true
    print(success && fail); //輸出為false
  }

4慌盯、List集合:

///List集合
  void _listType() {
    print('----listType-----');
    ///集合初始化的方式,集合內(nèi)容可以是任意類型的
    List list=[1,2,3,"集合"];
    //集合泛型的用法,<>為泛型的標(biāo)志周霉,限制了集合中元素的類型
    List<int> list2=[1,2,3];
    //添加元素到集合中,add添加單個(gè)元素,而addAll則是把某個(gè)集合的全部元素添加進(jìn)來
    List list3=[];
    list3.add("list3");
    list3.addAll(list);
    print(list3);
    //集合生成函數(shù)的用法,參數(shù)1:生成函數(shù)的長度(從0開始算)亚皂,參數(shù)2:生成函數(shù)的規(guī)則俱箱,index為函數(shù)的位置
    List list4=List.generate(3, (index) => index*2);
    print(list4);
    //集合遍歷的三種方式方式
    for(int i=0;i<list.length;i++){
      print(list[i]);
    }
    for(var index in list){
      print(index);
    }
    list.forEach((element) {
      print(element);
    });
    //訪問集合中的元素,下標(biāo)從0開始
    print(list4[0]);
    //集合的長度
    print(list4.length);
    //在指定位置插入元素,參數(shù)1:指定的元素位置(下標(biāo)從0開始),參數(shù)2:參入的內(nèi)容
    list.insert(3, "element");
    print(list);
    //移除指定位置的元素
    List list5=[1,2,3,4,5];
    list5.removeAt(4);
    print(list5);
    //清楚集合中的所有元素
    List list6=[1,2,3];
    list6.clear();
    print(list6);
    //截取子集合,參數(shù)1和2均為下標(biāo)位置灭必,下標(biāo)從0開始狞谱,不包含最后下標(biāo)的元素
    print(list.sublist(1,3));
    //獲取集合中某個(gè)范圍的元素,下標(biāo)從0開始
    print(list.getRange(1, 4));
    //為每個(gè)元素之間增加字符進(jìn)行拼接
    print(list.join(","));
    //判斷集合是否為空,返回布爾類型
    print(list.isEmpty);
    //判斷集合中是否含有該元素
    print(list.contains(1));
  }

5厂财、map集合:

 ///map是將key和value相關(guān)聯(lián)的對(duì)象芋簿,key和value都可以是任何類型的對(duì)象,并且key是唯一的璃饱,如果key重復(fù)与斤,后面添加的key會(huì)替換前面的內(nèi)容
  void _mapType() {
    print('----_mapType----');
    ///map初始化方法
    Map names={'xiaoming':'小明','xiaohong':'小紅'};
    print(names);
    Map ages={};
    ages['xiaoming']=16;
    ages['xiaohong']=18;
    print(ages);
    ///Map遍歷的三種方式
    ages.forEach((key, value) {
      print('$key,$value');
    });
    //注意=>是return的意思,MapEntry意思是map里面的每個(gè)map集合
    Map ages2=ages.map((key, value) =>
    //迭代生成新的一個(gè)Map
       MapEntry(value,key)
    );
    print(ages2);
    for(var key in ages.keys){
      print('$key  ${ages[key]}');
    }
    //判斷是否含有指定的key荚恶,返回布爾類型
    print(ages.containsKey("xiaoming"));
    //判斷是否含有指定的value撩穿,返回布爾類型
    print(ages.containsValue(16));
    //把map鍵值對(duì)中key或者value中提取出來形成List集合
    print(ages.keys.toList());
    //修改指定key的value值
    print(ages['xiaoming']="小命");
    //移除指定key的value值
    Map map2={1:2,3:4};
    map2.remove(1);
    print(map2);
  }

6、dynamic谒撼、var食寡、object三者區(qū)別:

///科普小知識(shí):dynamic、var廓潜、Object三者的區(qū)別
  void _tips() {
    ///dynamic為動(dòng)態(tài)數(shù)據(jù)類型抵皱,它所定義的變量在編譯期間會(huì)失效,也就是編譯中無法識(shí)別它所定義的類型辩蛋,但是在運(yùn)行中會(huì)依據(jù)它所定義的變量的內(nèi)容進(jìn)行類型推導(dǎo)
    ///而且它所定義的變量會(huì)依據(jù)它變量的值的變化呻畸,而在運(yùn)行中類型也會(huì)進(jìn)行變化
    dynamic x="xiaoming";
    print("${x.runtimeType}   $x");
    x=123;
    print("${x.runtimeType}    $x");
    ///var與dynamic的區(qū)別就是var所定義的變量在編譯期間可以進(jìn)行檢測(cè),但是var也是屬性動(dòng)態(tài)數(shù)據(jù)類型悼院,在初次定義的時(shí)候可以不用聲明數(shù)據(jù)類型伤为,進(jìn)行自動(dòng)類型推導(dǎo),但是在初次定義后据途,賦值其他數(shù)據(jù)類型
    ///就會(huì)編譯報(bào)錯(cuò)
    var y="xiaoming";
    print(y.runtimeType);
    print(y);
    //y=123;會(huì)出現(xiàn)編譯報(bào)錯(cuò)
    ///object是dart對(duì)象的基類,所以通過object定義的變量就會(huì)變成一個(gè)對(duì)象而不再是變量
    Object o1='111';
    print('${o1.runtimeType}  $o1');
  }

然后順便安利下“熊喵先生”這位flutter的文章寫得真的很到位绞愚,各位看官可以去看下叙甸,鏈接如下:
https://juejin.cn/post/6844903981827751949#heading-15
好啦,我繼續(xù)去學(xué)習(xí)啦N获谩裆蒸!祝大家新的一年天天向上!糖驴!健健康康

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末光戈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子遂赠,更是在濱河造成了極大的恐慌久妆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跷睦,死亡現(xiàn)場(chǎng)離奇詭異筷弦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抑诸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門烂琴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜕乡,你說我怎么就攤上這事奸绷。” “怎么了层玲?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵号醉,是天一觀的道長。 經(jīng)常有香客問我辛块,道長畔派,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任润绵,我火速辦了婚禮线椰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尘盼。我一直安慰自己憨愉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布卿捎。 她就那樣靜靜地躺著配紫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娇澎。 梳的紋絲不亂的頭發(fā)上笨蚁,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天睹晒,我揣著相機(jī)與錄音趟庄,去河邊找鬼括细。 笑死,一個(gè)胖子當(dāng)著我的面吹牛戚啥,可吹牛的內(nèi)容都是我干的奋单。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼猫十,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼览濒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拖云,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤贷笛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宙项,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乏苦,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年尤筐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汇荐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盆繁,死狀恐怖掀淘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情油昂,我是刑警寧澤革娄,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站冕碟,受9級(jí)特大地震影響稠腊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸣哀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一架忌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧我衬,春花似錦叹放、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至破加,卻和暖如春俱恶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工合是, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留了罪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓聪全,卻偏偏與公主長得像泊藕,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子难礼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容