PHP 提供了有用的魔法常量,例如:
__CLASS__
__FILE__
__METHOD__
等等。还有
get_class()
函数提供了类似的功能。
Dart中是否有类似的东西?
PHP 提供了有用的魔法常量,例如:
__CLASS__
__FILE__
__METHOD__
等等。还有
get_class()
函数提供了类似的功能。
Dart中是否有类似的东西?
类似于 PHP 的编译器常量不可用。但是您可以手动执行此操作(不是恒定值)。
这速度较慢,但有效。
import 'package:stack_trace/stack_trace.dart';
void main() {
print(__LINE__);
print(__METHOD__);
print(__FILE__);
new Foo();
}
class Foo {
Foo() {
print(__CLASS__);
}
}
String get __CLASS__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
var member = frames[1].member;
var parts = member.split(".");
if(parts.length > 1) {
return parts[1];
}
}
return null;
}
String get __METHOD__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].member;
}
return null;
}
String get __FILE__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].uri.path;
}
return null;
}
int get __LINE__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].line;
}
return null;
}
4
main
/home/andrew/dart/for_web/test/bin/test.dart
Foo