Dart 语法总结

编程入门 行业动态 更新时间:2024-10-24 07:24:52

Dart <a href=https://www.elefans.com/category/jswz/34/1770552.html style=语法总结"/>

Dart 语法总结

Dart语法总结

  • 变量
    • Hello World
    • 变量声明
    • 数据类型
    • 函数使用
    • 面向对象
    • Dart 特殊运算符

变量

Hello World

/*** 1.main函数是dart入口* 2. 参数args, 类型为List<String> - 泛型
*/
void main(List<String> args) {print("hello world");
}

变量声明

void main(List<String> args) {// 和swift类似// 1. 明确的声明String name = "why";// 2. 类型推导 (var/final/const)//虽然没有指定类型,但是是有自己的明确类型的var name1 = "fishycx";// name1 = 1;  这样写会报错的, 和swift类似, 和 python/js 不一样。//final 用来声明一个常量, 类似于swift中的let,运行时得到的常量值final height = 1.99;//height = 2.0; 这样写会报错//const 也是用来声明常量的, 编译时赋值的常量值。就是做=后边必须时一个常量值,而final=后面可以表达式。const address =  "xxxxxx";// address = “yyyyy”;会报错final date = DateTime.now();const p1 = Person("xx");const p2 = Person("xx");print(identical(p1, p2));}class Person {final String name;const Person(this.name);
}

数据类型

数值类型,布尔值, 字符串
条件判断必须是布尔值, 不是和python,js 一样的非0既真。

 //1.数组Listvar names = ["abd", "cbd", "fishycx"];//2.集合Setvar words = {"lovers", "lonely", "only one"};//3.映射Mapvar word1s = {"name": "why", "age": "xxx"};

函数使用

void main(List<String> args) {sayHello("json");// 位置可选参数是指, 中括号里面的参数是可选的, 如果传的话是按照位置匹配的,没有传递 参数名sayHello2("json");sayHello2("json", 10);sayHello2("json", 10, 100);//命名可选参数是指, 打括号括起来的参数是可选的, 如果要传值的话, 使用 参数命名来匹配。 sayHello3("json");sayHello3("json", age: 10);sayHello3("json", height: 10.0, age: 22);}// 必选参数: 必须传的参数
// 可选参数: 1.位置可选参数  2.命名可选参数
// 可选参数才有默认值
// 位置可选参数:[int age, double height]
// 实参或形参进行匹配时, 根据位置进行匹配
void sayHello(String name) {print("hello $name");
}// 可选参数必须提供默认值,或者使用?标记可以为空
void sayHello2(String name, [int? age, double? height]) {print("hello $name $age $height");
}// 命名可选参数使用{}
void sayHello3(String name, {int? age, double? height}) {print("hello $name $age $height");
}

匿名函数:

void main(List<String> args) {// swift, pyton, dart, 函数是一等公民, java, oc 并不是。 // 函数可以赋值给一个变量, 可以做为另外一个函数的参数或返回值。test(bar);//匿名函数test((){print("匿名函数");});//和ES6差不多.test((){print("箭头函数");});test1((num1, num2) {return num1 + num2;});var demo1 = demo();print(demo1(10, 20));
}void test(Function foo) {foo();
}void bar() {print("bar 函数被调用");
}//开发中,使用typedef 给函数一个别名,  typedef Caculate = int Function(int num1, int  num2);void test1(Caculate calc) {print(calc(20, 30));
}//函数做为返回值
Caculate demo() {return  (int num1, int num2){return num1 * num2;};
}

面向对象

命名构造函数

class Person {String age;String name;double height;Person(this.age, this.name, this.height);//命名构造函数Person.withAgeNameHeight(this.age, this.name, this.height);
}

Dart 特殊运算符

void main(List<String> args) {// ??= : 当原来的变量有值时, 不执行赋值操作。var name = null;name ??= "lelei";print(name);// ??  如果变量为null, 可取 ??后面的值赋值给变量, 这和swift一直var name1 = null;print(name1 ?? "fishycx");
}
void main(List<String> args) {var p = Person();p.name = "Why";print(p.name);p.run();p.eat();var p1 = Person()..name = "xxx"..run()..eat();
}class Person {late String name;void run() {print("running");}void eat() {print("eating");}
}

for 循环

void main(List<String> args) {//1.基础for循环for(var i = 0; i<10; i++) {print(i);}//2.遍历数组for(var i in [1, 3, 5, 10]) {print(i);}}

\

更多推荐

Dart 语法总结

本文发布于:2023-11-16 16:33:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1628241.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语法   Dart

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!