dynamic x = 2;
这不编译。但是:
final int n = 6; /* and */
final y = "Hello world!"
都编译。
是否可以以及如何从类型dynamic
明确声明变量?
答案 0 :(得分:3)
可以将变量明确声明为类型dynamic
。代码
dynamic x = 2;
编译并等同于代码
var x = 2;
声明变量时, var
是dynamic
的简写。省略类型注释等同于创建类型注释dynamic
。
var
和dynamic
之间的区别在于var
用于声明变量而不是类型;它不能是函数的返回类型(因为它不是声明变量),函数参数可以省略关键字var
(声明f(x){}
等同于声明f(dynamic x){}
和{ {1}})。
您只需要在通用类的类型参数中明确使用f(var x){}
,其中至少有一个但不是所有类型参数都是dynamic
,例如dynamic
。
答案 1 :(得分:1)
var x = 2;
定义了一个没有显式类型的变量,它与dynamic
相同。