首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Dart中记录当前函数名称?

在Dart中记录当前函数名称可以通过使用StackTrace类来实现。StackTrace类提供了获取当前函数调用栈信息的方法,从而可以获取当前函数的名称。

以下是在Dart中记录当前函数名称的示例代码:

代码语言:dart
复制
import 'dart:developer';

void main() {
  String functionName = getFunctionName();
  print(functionName); // 输出:main
}

String getFunctionName() {
  var stackTrace = StackTrace.current;
  var frames = stackTrace.toString().split("\n");
  var functionName = frames[1].trim().split(" ")[0];
  return functionName;
}

在上述示例中,getFunctionName()函数使用StackTrace.current获取当前函数的调用栈信息。然后,通过解析调用栈信息字符串,提取出当前函数的名称并返回。

请注意,StackTrace类提供了更多方法来获取调用栈信息,如StackTrace.fromStackTraceStackTrace.fromString等。根据实际需求,可以选择合适的方法来获取函数名称。

此外,Dart还提供了dart:developer库,其中包含了一些用于开发者工具和调试的函数和类。可以根据具体需求,进一步探索dart:developer库中的功能。

推荐的腾讯云相关产品:无

希望以上信息对您有所帮助!如有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在回调函数获取 WordPress 接口的当前优先级

在回调函数,我们可以通过 current_filter 函数可以获取当前回调函数是在执行那个 Hook ,但是如果要获取当前回调函数优先级,WordPress 就没有相关的函数了,所以我自己写了一个...$hook->current_priority() : null; } 获取 Hook 优先级有什么用 我们可能要移除接口的某个回调函数,然后最后又要加回来,怎么处理呢?...在要移除的回调函数的优先级之前定义一个相同接口的回调函数移除,在要移除的回调函数的优先级之后定义一个相同接口的回调函数加回来。...如果和我一样为了偷懒,这前后的移除和添加的回调函数是同一个,那就要在回调函数判断当前的优先级了: function wpjam_filter_content_save_pre($content){...该功能已经整合到 WPJAM Basic 插件,并已免费提供下载,简单勾选或者设置下即可开启!

52030

Dart的语法详解系列篇(四)-- 泛型、异步、库等有关详解九、泛型(Generics)十、库和可见性十一、异步支持十二、Isolates十三、生成器(Generators)十四、类型定义十五、元数据

要在使用构造函数时指定一个或多个类型,请将类型放在类名称后面的尖括号<......每个Dart应用程序都是一个库,即使它不使用library指令。可以使用包来分发库。 (一)使用库 使用import指定一个库的命名空间如何在另一个库汇总使用。...例如:show表示仅导入当前库,hide表示除了当前库之外全部导入。...例如在文件test.dart文件首行加上:library mylib; 表示这个库的名称是mylib ---- 十一、异步支持 Dart包含许多返回Future或Stream对象的函数。...元数据注解以字符开头@,后跟对编译时常量(deprecated)的引用或对常量构造函数的调用。

3.8K40

Flutter Platform Channels(一)

Dart或Android消息处理程序抛出的任何未捕获的异常都会被框架捕获并记录,并将null发送回发送方。在回复处理程序抛出的未捕获异常也会被记录。...Handlers被保存在由键为Channel名称的HashMap,因此每个通道最多只能有一个Handler。...---- 使用二进制消息,你需要考虑十分精细的细节,字节序以及如何使用字节表示更高级别的消息,字符串或映射。 每当要发送消息或注册handler时,还需要指定正确的通道名称。...以下代码显示了如何在Dart,Android和iOS的两个方向上使用message channel: // String messages // Dart side const channel = BasicMessageChannel...因此,你需要一种将方法名称与消息的参数分开的标准方法。 而且你还需要一种标准方法来区分成功回复和错误回复。 这些工作已经由method channel实现了。

4.4K01

Dart-类(上)

years old."); }}void main() { var person = Person("Alice", 30); person.introduce();}运行结果:在上面简单的介绍了下如何在...Dart 使用类名作为构造函数 Person(this.name, this.age)),允许有多个命名构造函数JavaScript 使用 constructor 关键字定义构造函数属性访问Dart...,你可以直接定义属性和它们的类型( String name;)JavaScript ,属性通常在构造函数内通过 this 关键字定义字符串插值Dart 使用 $ 符号进行字符串插值( "$name...,这意味着它们不属于任何特定的实例,而是属于类本身在 Dart 和 JavaScript 中都是可行的,尽管它们的实现方式略有不同Dart 的静态方法和属性在 Dart ,你可以使用关键字 static...JavaScript 类型是动态的,不需要显式声明访问方式:在 Dart 和 JavaScript ,静态方法和属性都通过类名直接访问,而不是通过类的实例构造函数在上方的类定义已经带着大家过了一遍类的定义了我这里就是想给大家单独说一下这个语法糖的构造函数

14910

开始使用-编写你的第一个Flutter应用程序 顶

如果您熟悉面向对象的代码和基本编程概念(变量,循环和条件),则可以完成本教程。 您不需要以前使用Dart或移动编程的经验。...你会建立什么 您将实施一个简单的移动应用程序,为一家创业公司生成建议名称。 用户可以选择和取消选择名称,保存最好的名称。 该代码一次生成十个名称。 当用户滚动时,会生成新批次的名称。...Process finished with exit code 0 3.在lib/main.dart,添加english_words导入语句,突出显示的行所示: import 'package:flutter...您将学习如何在主路由和新路由之间导航。 在Flutter,导航器管理包含应用程序路由的堆栈。 将路由推入导航器的堆栈,将显示更新为该路由。 从导航器的堆栈中弹出路由,将显示返回到前一个路由。...新页面的内容是使用匿名函数在MaterialPageRoute的builder属性构建的。 将呼叫添加到Navigator.push,突出显示的代码所示,将路由推送到导航器的堆栈。

9.5K20

Flutter必备语言Dart教程03 - 类,泛型

向类添加实例变量,以及构造函数。 ? Dart提供了一种构造函数初始化的简洁语法。如下所示: ? 您所见,我们编写了一行构造函数,第一个参数值将设置为name,第二个参数值将设置为age。...命名的构造函数 Dart提供了另一种定义构造函数的方法,称为命名构造函数。 ? 您所见,我们为构造函数提供了一个名称。这样我们在调用不同构造函数时,语义会更加清晰明了,不用根据参数去判断了。...这里我们创建两个命名构造函数,它们只有name参数,并调用默认的Pug构造函数。 方法 类的方法与Dart定义普通方法类似。 ? 覆盖方法也很简单。 ?...Getters & Setters 默认情况下,您在类定义的任何变量,只需引用对象上的变量名称即可访问,例如dog.name,对象变量也可以直接赋值。...控制可访问性 默认情况下,您在类定义的每个属性和方法都是公共的,可以直接访问。在Dart,您可以通过在其名称前添加“_”来使任何变量或方法变为私有。让我们将name属性设为私有。 ?

1.2K10

Dart语言指南(二) 顶

更多信息查看Dart语言规范. 向类添加功能:mixins Mixins是在多个类层次结构重用类的代码的一种方式. 要使用mixin,请使用with 关键字后跟一个或多个mixin名称。...按照惯例,类型变量具有单字母名称,例如: E, T, S, K, 和 V. 为什么要用泛型? 因为Dart的类型是可选的,所以您不必使用泛型 ...., 查看 Dart的仿真函数....Typedefs 在Dart函数是对象,就像字符串和数字是对象一样。typedef 或 function-type alias, 给一个函数类型一个别名,当声明字段和返回类型时,可以使用该名称。...在文档注释Dart编译器忽略所有文本,除非它包含在括号。 使用括号,可以参考类,方法,字段,顶级变量,函数和参数。 括号名称在已记录的程序元素的词法范围内得到解决.

3K20

AngularDart4.0 英雄之旅-教程-06服务 顶

创建一个可注入的HeroService 在lib / src下创建文件hero_service.dart。 服务文件的命名约定是小写的服务名称,后跟_service。...通过将AppComponent锁定到HeroService的特定实现,切换实现用于不同的场景(离线操作或使用不同的模拟版本进行测试)将很困难。...您可能会试图在构造函数调用getHeroes()方法,但构造函数不应包含复杂的逻辑,特别是调用服务器的构造函数(如数据访问方法)。 构造函数用于简单的初始化,将构造函数参数连接到属性。...有关异步函数的更多信息,请参阅在Dart语言浏览声明异步函数。 处理Future 由于对HeroService的更改,应用程序组件的英雄属性现在是Future,而不是英雄列表。...这是当前的实现:lib/app_component.dart (synchronous getHeroes) void getHeroes() { heroes = _heroService.getHeroes

2.9K10

Dart dart:mirrors 库

Dart的基本反射,支持内省和动态调用。 内省是运行程序可以检查其自身结构的反射子集。例如,一个打印出任意对象的所有成员名称函数。...动态调用是指在编译时不按字面指定评估代码的能力,例如调用一个其名称作为参数提供的方法(因为它在数据库查找,或者由用户以交互方式提供)。...如何解释这个库的文档 通常,Dart声明的名称使用Symbol类的实例表示。 每当doc讲述一个表示名称的Symbol类的对象时,它就意味着用于构造s的字符串。...LibraryDependencyMirror 导入或导出声明的镜像. LibraryMirror LibraryMirror反映了Dart语言库,提供对库的变量,函数和类的访问....TypedefMirror TypedefMirror表示Dart语言程序的typedef. TypeMirror TypeMirror反映Dart语言类,typedef,函数类型或类型变量.

1.4K30

Flutter技术与实战(5)

Dart层兼容Android/IOS平台特定实现(一) 方法通道 方法通道使用示例 Flutter 如何实现一次方法调用请求 在原生代码完成方法调用的响应 总结 思考 如何在Dart层兼容Android.../IOS平台特定实现(二) 构造一个复杂App需要什么 平台视图 Flutter 如何实现原生视图的接口调用 如何在原生系统实现接口 如何在程序运行时,动态地调整原生视图的样式 如何在原生应用混编...Listener 是 Animation 的回调函数,用来监听动画的进度变化,我们需要在这个回调函数,根据动画的当前值重新渲染组件,实现动画的渲染。...Dart 会将调用体的函数也视作异步函数,将等待语句的上下文放入 Event Queue ,一旦有了结果,Event Loop 就会把它从 Event Queue 取出,等待代码继续执行。...通过一个例子与你演示如何在 Flutter 实现文件读写。

15.7K30

Flutter UI如何使用Provide实现主题切换详解

背景 provide是谷歌官方出品的一个状态管理框架flutter-provide,它允许在小部件树传递数据,它被设计为ScopedModel的替代品,允许我们更加灵活地处理数据类型和数据 为什么需要状态管理...在进行项目的开发时,我们往往需要管理不同页面之间的数据共享,在页面功能复杂,状态达到几十个上百个的时候,我们会难以清楚的维护我们的数据状态,本文将以主题切换这个功能使用状态管理来讲解如何在Flutter...get 在需要使用的页面引入 import 'package:provide/provide.dart' 创建model (这才第一步) 新建 lib/store/models/config_state_model.dart.../models/config_state_model.dart' show ConfigModel; class Store { // 我们将会在main.dartrunAPP实例化init static...'; import 'package:efox_flutter/store/index.dart' show ConfigModel, Store; /** * name: 颜色名称 red *

2.1K20

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )

, 资源等 ; lib 目录 : 是 Dart 代码所在目录 ; Flutter 包的类型 : Dart 包 : 仅涉及 Dart 代码 , 将 Dart 代码封装一下 , 实现特定功能 , 解析...iOS 的 Objective-C / Swift 的实现 , 之前使用的拍照插件包 , 在 Android 平台使用了 Android 相机的代码 , 在 iOS 调用了 iOS 相机相关功能 ;...; --template 设置当前创建的工程类型 , plugin 表示 Flutter 插件包 ; flutter_plugin 表示插件包的名称 ; D:\flutter>flutter create...; 在弹出的如下对话框 , 选择 " Flutter Package" 就是创建 Flutter 包 ; 输入 Flutter 包名称 ; 点击 " More Settings " 选项 ,...的 Dart 包 ; flutter create --template=package flutter_package --template 设置当前创建的工程类型 , package 表示 Dart

1.5K10

Dart 专题】Factory 工厂构造函数

和尚学习 Flutter 有一段时间,虽可以应用基本的 Dart 语法,但对于一些特殊的语法还是很陌生,和尚准备开一个小的【Dart 专题】记录一些日常用的 Dart 语法及相关应用; Constructors...Constructors 构造方法在日常应用必不可少,和尚是 Android 开发,对 Java 构造函数更加熟悉; Constructors 构造方法是对象的初始化;函数名与类名一致且没有返回值类型...; Default Constructors 默认构造函数与 Java 类似,可以是无参构造函数和有参构造函数;但与 Java 不同的是,Dart 构造函数不允许重载,即不允许有相同名称的构造函数...; 变量不允许有初始值; 常量构造函数必须用 const 关键词修饰; 常量构造函数不允许有函数体; 实例化时需要加 const 否则实例化的对象仍然可以修改变量值; class People {...People.map() 时,先判断该实例是否已完成构造,若已存在则返回 _cache 实例,不存在则构建新的实例; Demo 的 people 和 people2,调用工厂函数时,people

1.4K20
领券