gpt4 book ai didi

debugging - Dart :魔术常数当量

转载 作者:行者123 更新时间:2023-12-03 03:28:42 25 4
gpt4 key购买 nike

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

关于debugging - Dart :魔术常数当量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com