美文网首页
Dart 语言之“内置类型”

Dart 语言之“内置类型”

作者: AndyZX | 来源:发表于2020-01-14 13:56 被阅读0次

    1、数值类型:num

    在java中的八大基本数据类型,dart 中都可以用数值类型来表示,dart中数值类型只有两种:int double;整型和浮点型,它们的父类都是  num;

    int  :表示整型;

    继承num

    int 在java中占4个字节;在dart中,如果编译成javaScript 的时候占32bit(4个字节),默认是64bit,因此dart中int的长度应该是根据环境来确定的,此处可以看作了java 一致;

    在Dart中,我们可以将你int当成java中的short、int、long来使用,如果我们写的dart声明的变量超过了4个字节,那么Dart会将其编译成类似java中的long,否则编译成java中的short或者int;

    java中int 是基本数据类型,Dart中int 是类,所以两者的字节占用大小是没有可比性的;

    dart源码中int类型注释

    double:表示浮点型;

    继承num

    dart  中没有float类型,只有double,表示浮点型都用double表示;与java类似;


    2、字符串类型:String

        基本使用:

             与java没有什么区别;

              String str = "hello";//声明一个字符串

    字符串拼接比较:

            java写法:

            1、可以使用 + 号进行字符串拼接(会生成多个对象,不推荐)

    String str = "hello";

    String txt = str+10+"美女,晚上好";

            2、可以使用 stringbuffer/stringbuilder/format 进行拼接;

    int i = 2;

    String str ="1";

    String  format =String.format("%s%d",str,i);

            dart写法:

    String str ="你好,";

    int num = 10;

    String txt = "$str你是$num号美女吗?"

    print(txt);

    输出结果:你好,你是10号美女吗?

    注意:

    1、💲符号后面跟的是变量;

    2如果后面跟的是字符或者数字,则需要{ }将其括起来,否则编译其无法判定哪个字符串是变量。例如:

    String str ="你好,";

    int num = 10;

    String txt = "${str}sam,你是$num号美女吗?"

    print(txt);

    输出结果:你好,sam,你是10号美女吗?

    字符串声明

        java写法

            String text ="我是一个字符串";

    dart:写法

            单引号声明 

    String text =‘我是一个Dart 字符串’;

            双引号声明

    String text =“我是一个双引号声明的Dart 字符串”;

    字符串转义

        java写法

    String  s = "\"带有双引号的字符串"\" ;

    String  n = "\\n这是一个换行的字符串" ;

        dart写法

    /**单双引号使用*/

    String dartS = '" 带有双引号的dart字符串 "';

    String dartS1 = “'带有单引号的dart字符串 '”;

    String  n = "\\n这是一个换行的字符串" ;//可以使用java中的方式

    String  n1 = r"\n这是一个换行的字符串" ;//dart中使用方式,r前缀, raw:原始,表示字符串中所有的换行、制表等符号保持不变

    /**三引号使用,多行字符串的声明*/

    String  moreText = """第一行文字

    第二行文字

    第三行文字

    第四行文字

    ....

    """;

    3、布尔类型 :bool

               与java一致,没什么可说的;

    4、数组类型:List

        dart写法

            数组声明

    List<String> list = new List();//声明一个带有泛型的数组

    List<String> list = List();//new 关键字可以省略

    List<int>list2 =[1,2,3,4,5];//可以在声明时直接赋值,java中则不可以;

            数组值的获取

    像java数组一样通过下标取元素

    int item0=list2[0];

            遍历数组

    //使用foreach 循环进行遍历

    for (var  item  in list2 ){

    print ( item)

    }

    //使用for循环进行遍历

    for (var j = 0 ;j< list2 .length; ++j){

    print ( list2 [j] )

    }

            不可变的数组声明

            List<int >list1 = const [1,2,3];//数组被const 修饰,不可改变

            list1=[3,4,5]; //可以修改引用

            list1.add(1); //此处虽在编译时不会报错,但运行时会报错;

    const 修饰的是[1,2,3]这一个对象,表示这个对象不可变,不能在add元素了;

       以上代码报以下错误:

    运行时报错


             const  List<int >list1 = [1,2,3];//数组被const 修饰,不可改变

             list1=[3,4,5]; //此处在编译时会报错;

             list1.add(1); //同样不运行添加元素;

     const 修饰的是变量,也就是引用,那么变量不能够再引用其他对象了;

    由此可见,const在修饰谁时,谁就是不可变的!与c\c++类似;

    5、映射集合:Map

             与java类似

            Map <int , int >map = {1:1, 2:2, 3:3 };

           通过下标获取元素

           int value=  map[1];//注意里面的1是key,不是下标;

            修改元素

            map[1]= 100;

            不可变集合

            于List 类似,同List;

             遍历map与java一样

    6、Unicode:Runes

               (Unicode32)特殊字符表示类、用于表示一个表情符号、

                此类型在开发中几乎用不到,此处不做详细说明

    7、标识符:Symbols

            类似c/c++中的宏

              此类型在开发中几乎用不到,此处不做详细说明

    相关文章

      网友评论

          本文标题:Dart 语言之“内置类型”

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