Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart _internal的语义是什么?_Dart - Fatal编程技术网

Dart _internal的语义是什么?

Dart _internal的语义是什么?,dart,Dart,我一直在以下示例中看到对_internal的引用: 类符号{ 最后的字符串名; 静态映射缓存; 工厂符号(字符串名称){ 如果(_cache==null){ _缓存={}; } if(_cache.containsKey(名称)){ 返回_缓存[名称]; }否则{ 最终符号=新符号。\u内部(名称); _cache[name]=符号; 返回符号; } } 符号。_内部(此名称); } 我从代码中收集到,它是一个可私人访问的构造函数。最后一行符号。\u内部(此.name)似乎有点混乱,因为它似乎

我一直在以下示例中看到对_internal的引用:

类符号{
最后的字符串名;
静态映射缓存;
工厂符号(字符串名称){
如果(_cache==null){
_缓存={};
}
if(_cache.containsKey(名称)){
返回_缓存[名称];
}否则{
最终符号=新符号。\u内部(名称);
_cache[name]=符号;
返回符号;
}
}
符号。_内部(此名称);
}
我从代码中收集到,它是一个可私人访问的构造函数。最后一行
符号。\u内部(此.name)
似乎有点混乱,因为它似乎是类主体中的一条语句,而不是方法主体中的一条语句,这让我相信它实际上是没有方法主体的内部构造函数定义


我的假设正确吗?

内部的\u内部的构造只是给类私有的构造函数的一个名称(名称不必是。\u内部的可以使用任何类创建私有构造函数。\u someName构造)

例如,以下代码仅允许您使用缓存构造函数从类外部创建新人员:

班级人员{
最后的字符串名;
静态映射缓存;
工厂人员(字符串名称){
如果(_cache==null){
_cache=newmap();
}
如果(_cache[name]==null]){
_cache[name]=新人员。\u内部(姓名);
}
返回_缓存[名称];
}
内部人员(姓名);
}
通常,Dart将任何\u构造视为类或包含它的库的私有。例如,您可以定义如下的全局函数:

\u globalToThisLibaryOnly(){
打印(“只能在此库中全局调用”);
}

它可以从定义它的库中的任何源文件调用。

再次感谢,Lars。这很有帮助。还有一些事情我还不完全理解,比如,构造函数可以选择有一个方法体?定义为final的类成员只能在构造函数的参数列表中设置,而不能在构造函数体中设置?这些仍然让我困惑不解的事情。除了类。它也可以是类_