美文网首页
dart基础内容特点记录

dart基础内容特点记录

作者: 太sun阳 | 来源:发表于2019-06-24 17:42 被阅读0次

一.var、Object 和dynamic 关键字的区别

1.var是一种语法不是一个类型,声明的变量会被反推其具体的类型,所以该变量可以使用所有对应具体类型的方法,类型确定后不可变,比如var name="张三" ;      name=2;就会报错,

2.Object 和dynamic都是一种类型,都可以在确定类型之后更改变量的类型,比如dynamic name=2;      name="张三" ; 是可以的,但无法使用最后类型的方法,比如想调用name.substring()是会报错的,因为dynamic类型没有该方法

3.dynamic是运行时确定实际类型,比如dynamic name="aaa"; name++;编译通过,运行时会报错

总结:var最常用,使用Object 和dynamic需要小心,很多问题编译时无法发现,运行时会报错,类型不确定且是单一类型使用var,若类型不限于单一类型使用Object 或dynamic

二.const和final的区别

1.final修饰的变量初始化后不可再被赋值,若变量是基本类型则值不可修改,若变量是引用则该引用不能重新赋值改变引用地址,修饰类则该类不能被继承,修饰方法不能被重写.

2.const定义常量,编译时就需要确定其值

注:final和const都不能和var一起使用

总结:const比final更严格,final编译时可以不确定其值,比如final int f=func();可以   const int c=func();则不行

在flutter的hot reload时,修改const修改的初始值正常反馈,但是修改final的初始化值必须重启才可以,因为final修饰的被视为状态不会改变,const的字段被视为别名.

三.特殊运算符

1. ?.  : Test?.funs从表达式Test中选择属性funs,除非Test为空(当Test为空时,Test?.funs的值为空)

2. ?? : expr1 ?? expr2 表示如果expr1非空,则返回其值; 否则返回expr2的值

3. ~/ : 整除,结果抹掉小数取整数

4. as : (a as b).method();  相当于  if(a is b){ a.method() };

四.dart标记

1.跳出代码块:  可以标记一块代码块,当代码块内的逻辑需要跳出时可以使用break 标记

例:    void test(String a){

void tests(String a){

error:{

if(a==null)break error;

    print("若a为null则该处不会执行");

  }

print("只要该处之前没有return,不管a是不是null都会执行");

}

五.类与函数

1.隐式接口: 每个类都隐式定义了一个接口,包含该类的所有变量和方法.

当创建了任何一个类A,其他类B可以直接使用implements该类的名称,如B implements A,此时B需要重写A的所有变量和方法否则会报错,此时implements 的A就是定义类A隐式创建的接口.

2.call()方法:一个类定义了call()之后,允许像函数一样调用类.

例:class TestClass{

call(int a,int b)=>print(a+b);

}

TestClass test=TestClass();

print(test(1,200));

相关文章

  • dart基础内容特点记录

    一.var、Object 和dynamic 关键字的区别 1.var是一种语法不是一个类型,声明的变量会被反推其具...

  • 软件开发基础 (第一天)

    软件开发基础 (第一天) Dart 语言 Dart 语言介绍 基于Dart的以下特点,可以通过他在不同的设备上创作...

  • Flutter & Dart 基础

    以下主要是学习极客时间 Flutter 专栏相关学习记录。 Dart 基础 Online Dart iDE 核心特...

  • Dart 基础(四)

    前言笔者在之前已经写了3篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二)Dart 基础 (三)...

  • Dart 基础 (三)

    前言笔者在之前已经写了2篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二) 本文是Dart基础的...

  • Dart语法的学习

    写给读者,本文是Dart基础学习的个人笔记,内容来自慕课网。 1.Dart的变量与常量 Dart的代码要运行在ma...

  • Dart基础系列之重要概念

    核心内容 最基础的Dart程序Dart一些重要的概念KeyWord(关键字)Variable(变量)Final&&...

  • Dart基础(一)

    前言:笔者最近看了Flutter相关的内容,而Flutter的基础库是由Dart编写的,所以笔者学习了关于Dart...

  • Dart基础(二)

    前言:笔者最近看了Flutter相关的内容,而Flutter的基础库是由Dart编写的,所以笔者学习了关于Dart...

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

网友评论

      本文标题:dart基础内容特点记录

      本文链接:https://www.haomeiwen.com/subject/jbekqctx.html