当前位置:首页 > 机动车 >

dart语言为什么不火(dart语言优势和劣势)

来源:原点资讯(www.yd166.com)时间:2023-11-06 21:45:22作者:YD166手机阅读>>

安装Code Runner插件

dart语言为什么不火,dart语言优势和劣势(5)

helloworld

1. 在VSC新建文件

1. 输入以下代码

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

1. 在文件上按鼠标右键,选择点击Run Code运行

dart语言为什么不火,dart语言优势和劣势(6)

1. 运行结果

dart语言为什么不火,dart语言优势和劣势(7)

变量声明var

使用方式与JavaScript的var一致,可以接收任意类型的值。不同的地方是,Dart是强类型语言,赋值以后类型就确定下来,不能再更改为其它类型。

var name;name = 'zhangsan';// 下面的代码在dart中会报错,原因是变量name类型已经确定为String// 类型一旦确定就不能再更改.name = 100;

final和const

final和const类似都可以定义一个常量。它们的区别是const在声明必须赋值,而final可以先预声明需要使用时再赋值。

// const和final在声明字面量时作用是一致的 const PI = 3.14159; final PI2 = 3.14159;// 以下代码会报错,原因是常量赋值后就不能再做修改 // PI = 3.1415926535;final now = new DateTime().now(); // 以下代码在dart中会报错,const在编译时就必要赋值,而new DateTime().now() // 在运行才能产生具体的 // const now2 = new DateTime().now(); 数据类型

Dart内置节以下几种数据类型

· String

· Number

· Boolean

· List(Dart没有数组,类似于数组的作用)

· Map

· Runes(UTF-32字符集的字符)

· Symbols

通过一段代码来演示以上的数据类型

void main(){ // Number int a = 1; double b = 0.1; // String var s1 = 'this is a string'; String s2 = "this is another string"; // boolean var flag = true; bool flag2 = false; // List List list = [1, 2, 3, 4, 5]; List<String> list2 = ['zhang', 'san', "123", "456"]; List<dynamic> list3 = [1, true, 'haha', 1.0]; // Map Map person = new Map(); map['name'] = 'zhangsan'; map['age'] = 22; // Dart使用runes来获取UTF-32字符集的字符。String的codeUnitAt and codeUnit属性可以获取UTF-16字符集的字符 var clapping = '\u{1f44f}'; print(clapping); // 打印的是拍手emoji的表情 // symbols print(#s == new Symbol("s")); // true} 函数函数的返回值

Dart是面向对象的编程语言,所以函数也是一个对象,还有一种类型Function,也就是说函数可以赋值给某个变量或者作为参数传给另外的函数。Dart建议给函数添加上返回类型,但是不加返回类型的函数同样可以正常工作,另外还可以用lamda表达式,比如下面的代码:

// 声明返回类型 int add(int a, int b) { return a b; } // 不声明返回类型add2(int a, int b) { return a b;} // =>是return语句的简写add3(a, b) => a b;main() { print(add(1, 2));//3 print(add2(2, 3)); // 5 print(add3(1, 2)); // 3} 命名参数、位置参数、参数默认值命名参数

使用花括号将函数的参数括起来就是定义了命名参数,如下面的代码所示:

```dart sayHi({String name}) { print("hello, my name is $name");}

sayHi2({name: String}) { print("hello, my name is $name");}

main() { // 打印 hello, my name is zhangsan sayHi(name: 'zhangsan');

// 打印 hello, my name is wangwu sayHi2(name: 'wangwu'); }```

从上面代码可以看到,命名参数时可以使用{type paramName}或者{paramName: type}两种方式声明参数,而调用命名参数时,需要以funcName(paramName: paramValue)的形式调用。

命名参数的参数并不是必须的,所以上面的代码中,如果调用sayHi()不带任何参数,也是可以的,只不过最后打印出来的结果是:hello, my name is null。

位置参数

使用中括号[]括起来的参数是函数的位置参数,代表该参数可传可不传,位置参数只能放在函数的参数列表的最后面,如下代码所示:

```dart sayHello(String name, int age, [String hobby]) { // 位置参数可以有多个,比如[String a, int b] var msg = "hello, this is $name and I am $age years old"; if (hobby != null) { msg = "$msg, my hobby is $hobby"); } print(msg);} main() { // hello, this is zhangsan and I am 20 years old sayHello("zhangsan", 20); // hello, this is zhangsan and I am 20 years old, my hobby is play tv game sayHello("zhangsan", 20, "play tv game");}``` 参数默认值

可以为命名参数或者位置参数设置默认值,如下代码所示:

```// 命名参数的默认值int add({int a, int b = 3}) { return a b;}// 位置参数的默认值int sum(int a, int b, [int c = 3]) { return a b c;}```

main()函数

不论在Dart还是Flutter中,必须都需要一个顶层的main()函数,它是整个应用的入口函数,main()函数的返回值是void,还有一个可选的参数,参数类型是List。

匿名函数

大多数函数都是有名称的,比如main() hello()等,但是也可以写匿名函数,如果对JavaScript比较熟悉,看到下面的肯定也不会陌生:

test(Function callback) { callback("hello");} main() { test((param) { // 打印hello print(param); });}

匿名函数类似于Java中的接口,往往在某个函数的参数为函数时使用到。

函数返回值

所有的函数都有返回值,如果没有指定return语句,那么该函数的返回值为null。

运算符

Dart中的运算符与JavaScript中的类似,比如 a、a == b、b ? a : b,但是也有一些与JavaScript不太一样的运算符,下面用代码说明:

main() { // 与JavaScript相同的运算符操作 int a = 1; a; a ; var b = 1; print(a == b); // false print(a * b); // 3 bool real = false; real ? print('real') : print('not real'); // not real print(real && a == b); // false print(real || a == 3); // true print(a != 2); // true print(a <= b); // false var c = 9; c = 10; print("c = $c"); // c = 19 print(1<<2); // 4 // 与JavaScript不一样的运算符操作 // is运算符用于判断一个变量是不是某个类型的数据 // is!则是判断变量不是某个类型的数据 var s = "hello"; print(s is String); // true var num = 6; print(num is! String); // true // ~/才是取整运算符,如果使用/则是除法运算,不取整 int k = 1; int j = 2; print(k / j); // 0.5 print(k ~/ j); // 0 // ??=运算符 如果 ??= 运算符前面的变量为null,则赋值,否则不赋值 var param1 = "hello", param2 = null; param1 ??= "world"; param2 ??= "world"; print("param1 = $param1"); // param1 = hello print("param2 = $param2"); // param2 = world // ?.运算符 var str1 = "hello world"; var str2 = null; print(str1?.length); // 11 print(str2?.length); // null print(str2.length); // 报错} 控制流程

if...else, switch, for, while, try...catch语句跟JavaScript中都类似,try...catch语句可能稍有不同,下面用一段代码说明:

main() { // if...else语句 int score = 80; if (score < 60) { print("so bad!"); } else if (score >= 60 && score < 80) { print("just pass!"); } else if (score >= 80) { print("well done!"); } // switch语句 String a = "hello"; // case语句中的数据类型必须是跟switch中的类型一致 switch (a) { case "hello": print("good weather"); break; case "world": print("good morning"); break; default: print("good bye"); } // for语句 List<String> list = ["a", "b", "c"]; for (int i = 0; i < list.length; i ) { print(list[i]); } for (var i in list) { print(i); } // 箭头函数参数必须要用圆括号扩起来 list.forEach((item) => print(item)); // while语句 int start = 1; int sum = 0; while (start <= 100) { sum = start; start ; } print(sum); // try...catch语句 try { print(1 ~/ 0); } catch (e) { // IntegerDivisionByZeroException print(e); } try { 1 ~/ 0; } on IntegerDivisionByZeroException { // 捕获指定类型的异常 print("error"); // 打印出error } finally { print("finally"); // 打印出finally } } 总结

在这里我们学习了怎样配置Dart的开发环境,对变量声明、数据类型、函数、运算符、控制流程语法进行说明,为更深入学习Dart或者Flutter打下基础。

IT技术研习社,专注互联网技术研究与分享,喜欢的朋友可以点击【关注】;把经验传递给有梦想的人;

上一页12末页

栏目热文

flutter一年后感受(flutter和uniapp哪个好)

flutter一年后感受(flutter和uniapp哪个好)

作者 | Nick Manning译者 | 薛命灯在这篇文章中,我将分享我使用 Flutter 的经验,以及我在整个过程...

2023-11-06 21:51:58查看全文 >>

北方端午节有哪些习俗

北方端午节有哪些习俗

南龙舟,北踏柳;南艾草,北铜钱。中国的端午节南北方习俗各不同,就连粽子口味都争议不断,北方吃甜粽,南方吃咸粽,你是甜粽党...

2023-11-06 21:58:25查看全文 >>

端午节习俗都有什么(端午节的由来简单介绍)

端午节习俗都有什么(端午节的由来简单介绍)

端午节习俗知多少?来看看吧!来源: 大众网,...

2023-11-06 22:15:46查看全文 >>

端午节的5个习俗(端午节10个传统习俗)

端午节的5个习俗(端午节10个传统习俗)

“门前艾蒲青翠,天淡纸鸢舞。粽叶香飘十里,对酒携樽俎。”这是北宋文学家苏轼描绘的古人过端午时的场景。又是一年端午至,具有...

2023-11-06 21:37:51查看全文 >>

在哪找靠谱的代购

在哪找靠谱的代购

马上就是一年一度的“黑五”啦!用不用我再科普下呢?每年感恩节(11月第四个星期四)的后面一天的星期五就是“黑五”。这个说...

2023-11-06 21:48:21查看全文 >>

vooc和dart的区别(vooc协议兼容dart协议吗)

vooc和dart的区别(vooc协议兼容dart协议吗)

创伟电子 --- 专业数码产品充电及数据传输解决方案商大家都知道目前市场上主流的快充协议都有哪些吗?你是否听说过私有协议...

2023-11-06 22:10:55查看全文 >>

darts和dart的区别

darts和dart的区别

英国的早期教育是一个独立的体系,简称EYFS(Early Year Foundation Stage)。他们认为每个孩子...

2023-11-06 22:16:14查看全文 >>

dart语言可以干什么(dart语言讲解)

dart语言可以干什么(dart语言讲解)

Gitee 2019 年度数据报告已经发布,报告显示,Dart 语言成为了 2019 年 Gitee 增速最快的编程语言...

2023-11-06 21:59:11查看全文 >>

dart 怎么读(darts怎么读)

dart 怎么读(darts怎么读)

听绘本请点击下方音频 《Bear on a bike》 《骑自行车的小熊 》Bear on a bike,As hap...

2023-11-06 21:49:01查看全文 >>

dart和kotlin哪个好

dart和kotlin哪个好

分析候选语言好吧,让我们想象一下我们在 2014 年。满足以下要求的替代品并不多:控制语言演变以创建更好的框架 API。...

2023-11-06 21:53:37查看全文 >>

文档排行