在 Dart 中将库分成几部分和隐私
Breaking a library into parts and privacy in Dart
我正在尝试将库分解成多个部分,但无法从部分访问库的私有元素。
例如,假设我有一个名为 stack.dart 的文件,其中包含以下内容:
library stack;
final _stack = [];
get isEmpty => _stack.isEmpty;
get top => isEmpty ? throw "Empty stack!" : _stack.last;
get pop => isEmpty ? throw 'Empty stack!' : _stack.removeLast();
push(elt){
_stack.add(elt);
return elt;
}
我还有另一个文件,内容如下:
part of stack;
display(){
print(_stack); // can't access _stack from here!
}
这是正常的还是我做错了什么?
_stack
是库还是文件私有的?
您的问题是您忘记使用 part
关键字将您的文件包含到库中:
lib.dart:
library test_lib;
part 'part.dart';
final _private = 'This is private';
part.dart:
part of test_lib;
void test() {
print(_private); // I have access to the _private variable defined in lib.dart
}
我正在尝试将库分解成多个部分,但无法从部分访问库的私有元素。
例如,假设我有一个名为 stack.dart 的文件,其中包含以下内容:
library stack;
final _stack = [];
get isEmpty => _stack.isEmpty;
get top => isEmpty ? throw "Empty stack!" : _stack.last;
get pop => isEmpty ? throw 'Empty stack!' : _stack.removeLast();
push(elt){
_stack.add(elt);
return elt;
}
我还有另一个文件,内容如下:
part of stack;
display(){
print(_stack); // can't access _stack from here!
}
这是正常的还是我做错了什么?
_stack
是库还是文件私有的?
您的问题是您忘记使用 part
关键字将您的文件包含到库中:
lib.dart:
library test_lib;
part 'part.dart';
final _private = 'This is private';
part.dart:
part of test_lib;
void test() {
print(_private); // I have access to the _private variable defined in lib.dart
}