gpt4 book ai didi

dart - 任何最大值和argmax?

转载 作者:行者123 更新时间:2023-12-03 02:54:23 24 4
gpt4 key购买 nike

我想在集合上使用 max 和 argmax 。我看到一个 issue对于 max 但不是 argmax,它看起来与我的想法不同。这里的所有内容也适用于 min 和 argmin。具有等效行为的代码示例(减去错误处理):

import 'dart:html';
import 'dart:math' as math;

void main() {
final nums = [3, 1, 2];
final animalNames = ['cat', 'turtle', 'sheep'];
final highest = nums.reduce(nums[0], (stored, curr) => math.max(stored, curr));
final longest = animalNames.reduce(animalNames[0], longerString);
print('highest: $highest');
print('longest: $longest');
}

String longerString(final String first, final String second) {
if (first.length < second.length) {
return second;
} else {
return first;
}
}

我一直在搜索 API,但没有找到类似的东西:

final highest = nums.max;
final longest = animalNames.argmax((name) => name.length);

类似于 Ruby max and max_by .

问题:
  • 是否已经有这样的 API 调用(在我没有检查过的某个名称下)?
  • 有制作它们的计划吗?
  • 我应该提出问题吗?
  • 最佳答案

    我认为没有,但这是基于您的示例的一个非常简单的实现:

    animalNames.reduce("", (prev, cur) => prev.length > cur.length ? prev : cur);

    如果您只想查找一次,这比排序更快,但是如果您的 argmax 有复杂的逻辑,这可能会变得有点笨拙。

    在 Dartisans 的一个视频中,其中一位开发人员提到他们如何尝试使许多常见模式变得简单,所以我认为,如果您制作一个足够好的案例。

    关于dart - 任何最大值和argmax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13884666/

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