gpt4 book ai didi

list - 如何将 Dart 函数名称转换为字符串?

转载 作者:行者123 更新时间:2023-12-02 16:21:07 24 4
gpt4 key购买 nike

出于测试目的,我希望能够将像 getUserLocationByUserID(String userID){} 这样的函数名称动态地转换为字符串 'getUserLocationByUserID' 以便我可以使用别处

所以当你有一个函数列表并且你想在其中迭代时,我希望能够做这样的事情

import 'package:flutter/material.dart';

void function1() {}
void function2() {}
void function3() {}

List<Function> functionsList = [function1, function2, function3];

String magicalFunctionThatGetsAStringOutOfAFunctionName(Function function) {
String functionNameAsAString = ''; // magical code here <----------------------------------------------
return functionNameAsAString;
}

class FunctionTester extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: functionsList.length,
itemBuilder: (context, index) => GestureDetector(
onTap: functionsList[index],
child: Container(
width: 300,
height: 300,
child: Text(
magicalFunctionThatGetsAStringOutOfAFunctionName(functionsList[index]),
maxLines: 1,
style: TextStyle(
fontSize: 10,
),
),
),
),
),
);
}
}

最佳答案

试一试:

  String magicalFunctionThatGetsAStringOutOfAFunctionName(Function function) {
String functionNameAsAString = function.toString();
int s = functionNameAsAString.indexOf('\'');
int e = functionNameAsAString.lastIndexOf('\'');

return functionNameAsAString.substring(s + 1, e);
}

此解决方案可能有点老套,但与其他选项相比相当便宜。

注意:这个可以简化,我这样写是为了方便阅读:)

关于list - 如何将 Dart 函数名称转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65471148/

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