文章目录

  • 一、 dynamic 数据类型
  • 二、 dynamic 变量无法进行语法检查
  • 三、 dynamic 变量运行时类型修改
  • 四、 完整代码示例
  • 五、 相关资源

Dart 语言中有 dynamic , var , Object , 333 种数据类型 ;

一、 dynamic 数据类型


dynamic 数据类型 : dynamic 是 Drat 语言中的 动态数据类型 , 通过 dynamic 关键字定义的变量 , 在 编译时不会管定义的数据类型 , 运行时才处理变量的类型 , 根据变量赋值的类型推测当前的 dynamic 数据类型的运行时数据类型 , dynamic 变量只有在运行时才知道数据类型 ;

dynamic 变量定义 :

dynamic 变量名称 = 变量值

dynamic 变量代码示例 :

  dynamicDemo(){dynamic d = "CSDN";// 打印 dynamic 变量的运行时类型print(d.runtimeType);// 打印 dynamic 变量值print(d);}

运行结果 :

String
CSDN

二、 dynamic 变量无法进行语法检查


通过 dynamic 变量可以定义任何数据类型 , 在编译时会使 Dart 语言的静态语法检查失效 ;

如 : 先定义了 dynamic 变量 , 赋值了一个字符串 , 然后调用一个不属于该字符串对象的方法 , 这里肯定出错了 , 但是静态的语法检查肯定检查不出来 , 只能在最后运行报错时知道这里出现了错误 ;

运行时出现错误 :

这 Flutter 界面中也有报错信息 :

三、 dynamic 变量运行时类型修改


dynamic 数据类型 运行时类型可以改变 , 上述的 dynamic d 类型初始化为 String 类型 , 中途将整型赋值给该变量 , 此时该变量的类型变成了 int 类型 ;

代码示例 : 先为 dynamic 变量赋值了 String 类型值 “CSDN” , 然后为 dynamic 变量赋值了 int 类型值 666 ;

  dynamicDemo(){dynamic d = "CSDN";// 打印 dynamic 变量的运行时类型print(d.runtimeType);// 打印 dynamic 变量值print(d);// 调用 dynamic 变量的方法, 静态编译时无法检查其中的错误, 运行时会报错//d.getName();// 为 dynamic 变量赋值 int 数据d = 666;// 打印 dynamic 变量的运行时类型print(d.runtimeType);// 打印 dynamic 变量值print(d);}

运行结果 :

String
CSDN
int
666

四、 完整代码示例


import 'package:flutter/material.dart';class DartType extends StatefulWidget {@override_DartTypeState createState() => _DartTypeState();
}class _DartTypeState extends State<DartType> {@overrideWidget build(BuildContext context) {dynamicDemo();return Container();}dynamicDemo(){dynamic d = "CSDN";// 打印 dynamic 变量的运行时类型print(d.runtimeType);// 打印 dynamic 变量值print(d);// 调用 dynamic 变量的方法, 静态编译时无法检查其中的错误, 运行时会报错//d.getName();// 为 dynamic 变量赋值 int 数据d = 666;// 打印 dynamic 变量的运行时类型print(d.runtimeType);// 打印 dynamic 变量值print(d);}}

运行结果 :

String
CSDN
int
666

五、 相关资源


参考资料 :

  • Dart 开发者官网 : https://api.dart.dev/
  • Flutter 中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/
  • Flutter 官网 : https://flutter.dev/ ( 被墙 )
  • 官方 GitHub 地址 : https://github.com/flutter
  • Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )

博客源码下载 :

  • GitHub 地址 : https://github.com/han1202012/flutter_app_hello ( 随博客进度一直更新 , 有可能没有本博客的源码 )

  • 博客源码快照 : https://download.csdn.net/download/han1202012/15110705 ( 本篇博客的源码快照 , 可以找到本博客的源码 )

【Flutter】Dart 数据类型 ( dynamic 数据类型 )相关推荐

  1. Flutter(Dart)基础——数据类型

    Flutter(Dart)基础--数据类型 Dart 数据类型 Dart 中所有的对象都是对应一个类的实例.无论是int.函数和 null 等都是对象. Dart 中所有对象继承自 Object 类. ...

  2. Flutter基础之基本数据类型

    一.flutter中Dart语言基本数据类型 Dart语言常用的基本数据类型包括:Number数字.String字符串.Boolean布尔.List数组.Map集合.symbol符号: 1.Numbe ...

  3. 用Flutter + Dart快速构建一款绝美移动App

    作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...

  4. 不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App

    作者 | Wojciech Kuroczycki 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 如今这个时代,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不 ...

  5. Flutter Dart语言入门一篇就够了

    Dart介绍 Dart 是一种用于开发Android.IOS. Web和桌面应用的开源编程语言. 它是由Google开发的. Dart 语法类似于 C.javascript 和 java 语言. 先决 ...

  6. flutter dart ..addAll

    List<dynamic> test1=[];List<dynamic> test2=[];List<dynamic> test3=[];List<dynam ...

  7. python numpy 数据类型为python对象-python numPy模块 与numpy里的数据类型、数据类型对象dtype...

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...

  8. R语言数据类型及数据类型判断

    R语言数据类型及数据类型判断 目录 R语言数据类型及数据类型判断 从存储角度看R数据类型

  9. 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )

    文章目录 一.数据类型 二.数据类型本质 ( 数组地址 | 数组首元素地址 ) 一.数据类型 " 数据类型 " 是 数据的抽象 ; 相同类型的数据 , 表示形式相同 , 存储格式相 ...

最新文章

  1. linux 命令篇 -- 新建用户
  2. 第十六届全国大学生智能汽车竞赛--百度智慧交通(东部赛区)
  3. Linux_指令杂烩
  4. 要尝试着多跟外界交流
  5. BZOJ 2733 线段树的合并 并查集
  6. 马踏棋盘算法(骑士周游)
  7. Tensorflow_gpu安装的坑
  8. leetcode刷题——415. 字符串相加
  9. Linux C socket 编程之TCP
  10. C#使用NPOI导出excel设置单元格背景颜色
  11. 设计模式-----桥接模式(Bridge Pattern)(转)
  12. Java如何让程序一直运行,不停止
  13. wpsmac和pc版的区别_Mac系统下金山WPS和微软Office 哪个更好更好用
  14. STM32标准库驱动蜂鸣器
  15. 发散思维能力(1-2)
  16. 音视频基础(四)音频文件格式转换(支持重采样采样位数为24位)
  17. 运行中的线程如何停止?
  18. 狂降1000!苹果最悲情产品大降价!
  19. reflow (回流)和 repaint(重绘)理解
  20. 线性规划简单理解(LP问题)

热门文章

  1. 2012_01_26
  2. 石川es6课程---4、箭头函数
  3. eclipse 将javaWeb项目转化成maven项目
  4. BZOJ3996 [TJOI2015]线性代数 【最小割】
  5. 最小生成树之Kruskal算法
  6. 学习招投标相关知识-编写标书
  7. Chrome插件(Extensions)开发实践
  8. BZOJ1192: [HNOI2006]鬼谷子的钱袋
  9. 扩展js string 方法
  10. 摄影师张梦格App项目总结