日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

dart与java互调_Dart与Java不同的地方

發布時間:2023/12/10 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dart与java互调_Dart与Java不同的地方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據類型

基類是num

數值型的操作

運算符: +、 - 、* 、/ 、 ~/ 、 %

/ 除法 整數+余數

~/ 除法 取整

% 取余

常用屬性: isNaN、isEven、isOdd (是否非數字、奇偶)

常用方法:abs()、round()、floorl()、ceil()、toInt()、toDouble()

double nan = 0.0 / 0.0; nan -> not a number 只有這種情況才是非數字

abs 絕對值

round 最接近的整數 Returns the integer closest to this.

floor 不比它大的整數 Returns the greatest integer no greater than this.

ceil 不比它小的整數 Returns the least integer no smaller than this.

string 字符串

String a = '''asdfasdf

==asdfasdf''';

String b = 'aaa \n bbb';

String bb = r'aaa \n bbb';

print(a);

print(b);

print(bb);

單引號能存儲字符串 var aaa = 'asdfasdf';

三個單引號是保存長字符串,支持換行

r 關鍵字是不能使用轉義字符 asdfasdf

==asdfasdf

aaa

bbb

aaa \n bbb

字符串* [] String b = 'agggb';

print(b*5);

print(b[4]);

I/flutter ( 7429): agggbagggbagggbagggbagggb

I/flutter ( 7429): b

集合

List

list集合可以存儲不同類型的數據

遍歷可以直接傳入方法

加了const關鍵字說明不可修改 var list =[1,"asdfas",'aaaa',false,0.2];

print(list);

list[0]="hhh";

print(list);

var list2 = const[1,2,3];

var list3=new List();

list.forEach(print);

I/flutter (26396): [1, asdfas, aaaa, false, 0.2]

I/flutter (26396): [hhh, asdfas, aaaa, false, 0.2]

I/flutter (26396): hhh

I/flutter (26396): asdfas

I/flutter (26396): aaaa

I/flutter (26396): false

I/flutter (26396): 0.2

Map

可以存儲不同類型的變量

加了const關鍵字說明不可修改

List轉Map key是從0開始排序的

foreach可以傳入自定義方法 var map={"ad":22,3:"gggg",1:"asd",true:'aa',0.58:'asdf'};

print(map[true]);

print(map["ad"]);

map[1]=false;

print(map[1]);

var finalMap = const{1:2};

map.forEach(myPrint);

print(map.keys);

print(map.values);

var list =['aaa','f',"asd",false,0.85];

print(list.asMap());

void myPrint(key,value){

print("key=$key,value=$value");

}

I/flutter (17298): aa

I/flutter (17298): 22

I/flutter (17298): false

I/flutter (17298): key=ad,value=22

I/flutter (17298): key=3,value=gggg

I/flutter (17298): key=1,value=false

I/flutter (17298): key=true,value=aa

I/flutter (17298): key=0.58,value=asdf

I/flutter (17298): (ad, 3, 1, true, 0.58)

I/flutter (17298): (22, gggg, false, aa, asdf)

I/flutter (17298): {0: aaa, 1: f, 2: asd, 3: false, 4: 0.85}

dynamic

動態類型 dynamic b = 20;

b="kotlin";

//list本來就可以存動態類型

var dList = new List();

dList.add(1);

dList.add("bala");

print(dList);

var list = new List();

list.add("asdf");

list.add(false);

print(list);

運算符

??

有值的時候直接使用當前值,沒有值的時候使用賦值的值

a ?? b a 有值就用 a 的值 ,否則用 b 的值 int a = 10;

a ??= 66;

print(a);

var a;

var b = "kotlin";

print(a??b);

I/flutter (20501): kotlin

方法

沒有返回值類型可以省略void不寫

參數可以不寫類型

方法體只有一個語句可以用 => 代替 myPrint(key,value){

print("key=$key,value=$value");

}

testReturn1(a, b) => "$a,$b";

var hello = 1;

testReturn2(a, b) => hello == 1 ? "$a" : "$b";

{} 大括號包裹的是可選命名參數,調用的時候一定要 name:value 的形式

[] 中括號包裹的是可選位置參數

如果既有可選參數又有普通的參數,那么普通的參數一定要寫在前面 print(myPrint(1, value:2));

print(myPrint1(1, "asdf",1));

//可選命名參數

myPrint(key, {value,age}) {

print("key=$key,value=$value,age=$age");

}

//可選位置參數

myPrint1(key, [String value,aa]) {

print("key=$key,value=$value,aa=$aa");

}

可選參數可以有默認值,并且真正傳入的值的數據類型可以和默認值不同 print(myPrint1(1, "asdf",1));

//可選位置參數

myPrint1(key, [value=10,aa]) {

print("key=$key,value=$value,aa=$aa");

}

方法可以賦值給變量 var fun01 = myPrint;

var fun02 = myPrint(1, value:2);

Function fun03 = myPrint(1, value:2);

字符乘法 var times01 = times;

print(listTimes(list02, times01));

String times(str) => str*3;

List listTimes(List list,String times(str)){

for(int i =0;i

匿名方法 (str) {

print("bala~~$str");

};

匿名變量賦值給變量,可以直接使用 var fun01 = (str) {

print("bala~~$str");

};

fun01("asdf");

直接調用匿名方法 ((){

print("bbbbbbbbaaaaaa");

})();

匿名方法demo var list = ["b","a","l","a"];

print(listTimes01(list));

List listTimes01(List list) {

var func = (str){return str*3;};

for (int i = 0; i < list.length; i++) {

list[i] = func(list[i]);

}

return list;

}

閉包

閉包是一個方法(對象)

閉包可以訪問外部方法的局部變量,并持有其狀態

注意閉包 a 中返回 printCount 和 printCount()的區別 a(){

int count = 6;

/*printCount(){

print(++count);

}

return printCount;*/

return (){

print(++count);

};

}

var func = a();

func();

func();

func();

I/flutter (28650): 7

I/flutter (28650): 8

I/flutter (28650): 9

總結

以上是生活随笔為你收集整理的dart与java互调_Dart与Java不同的地方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。