ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Dart语言学习(八) dynamic

2020-01-28 11:55:14  阅读:242  来源: 互联网

标签:语言 list dynamic Dart var print o1 runtimeType


dynamic 表示是动态的,数据类型是指任意类型

  var a;
  a = 10;
  a = "Dart";
  print(a);

  dynamic b = 20;
  b = "JavaScript";
  print(b);
  print(b.runtimeType);

  var list = new List<dynamic>();
  list.add(1);
  list.add("hello");
  list.add(true);
  print(list);


  print("\n");
  dynamic x ='hal';
  print(x.runtimeType);//数据类型
  print(x);

  x = 123;
  print(x.runtimeType);
  print(x);

  var a1 = 'var';
  print(a1.runtimeType);
  print(a1);

  // Object
  Object o1 ='111';
  print(o1.runtimeType);
  print(o1);
  o1.toString();
  print(o1);

输出:

Dart
JavaScript
String
[1, hello, true]


String
hal
int
123
String
var
String
111
111

 

dynamic、var、object 三种类型的区别
dynamic:所有dart 对象的基础类型,在大多数情况下,不直接使用它
通过它定义的变量会关闭类型检查,这意味着 dynamix x= 'hi'; x.foo();
这段代码静态类型检查不会报错,但是运行时会crash,因为x 并没有foo() 方法,所以建议大家在编程时不要直接使用dynamic;
var: 是一个关键字,意思是"我不关心这里的类型是什么",系统会自动判断类型 runtimeType;
object: 是Dart 对象的基类,当你定义: object o =xxx ;时这个时候系统会认为o 十个对象,你可以调用o的toString()和hashCode()方法
因为Object 提供了这些方法,但是如果你尝试调用o.foo()时,静态类型检查会运行报错。
综上,dynamic 与object 的最大的区别是在静态类型检查上。

 

标签:语言,list,dynamic,Dart,var,print,o1,runtimeType
来源: https://www.cnblogs.com/jukaiit/p/12237651.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有