小编Ric*_*ler的帖子

我们应该如何输入具有附加属性的可调用对象?

作为一个玩具示例,让我们使用斐波那契数列:

def fib(n: int) -> int:
  if n < 2:
    return 1
  return fib(n - 2) + fib(n - 1)
Run Code Online (Sandbox Code Playgroud)

当然,如果我们尝试执行以下操作,计算机将会挂起:

print(fib(100))
Run Code Online (Sandbox Code Playgroud)

所以我们决定添加记忆功能。为了保持逻辑fib清晰,我们决定不改变fib,而是通过装饰器添加记忆:

from typing import Callable
from functools import wraps


def remember(f: Callable[[int], int]) -> Callable[[int], int]:
    @wraps(f)
    def wrapper(n: int) -> int:
        if n not in wrapper.memory:
            wrapper.memory[n] = f(n)
        return wrapper.memory[n]

    wrapper.memory = dict[int, int]()
    return wrapper


@remember
def fib(n: int) -> int:
    if n < 2:
        return 1
    return fib(n - 2) …
Run Code Online (Sandbox Code Playgroud)

python python-typing

7
推荐指数
1
解决办法
744
查看次数

有没有更好的方法来解析Dart中的int

这是关于Dart中int.parse的几个问题......

我知道在Dart中我们可以将字符串解析为int并使用以下内容捕获异常:

try {
  n = int.parse(input.value);
  // etc.
} on FormatException {
  // etc.
}
Run Code Online (Sandbox Code Playgroud)

(没关系.)

在文档中,有以下对int.parse的描述:

int parse(String source, int radix, int onError(String source))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用带有多个参数的int.parse时,我收到了编辑关于使用额外参数的投诉.我误解了文档吗?例如,如何设置基数?

dart

3
推荐指数
2
解决办法
5191
查看次数

如何使用Dart将剪贴板中的图像粘贴到Canvas元素上?

我正在使用Dart开发个人白板Chrome应用程序,有时能够快速复制和粘贴图像(例如演示文稿中的幻灯片,图表或讲义),以便我可以在图像上添加注释在教课或演讲时.

如何将存储在剪贴板上的图像粘贴到Dart中的画布元素上?

clipboard html5 image paste dart

3
推荐指数
1
解决办法
1613
查看次数

我们如何在 Dart 2 中将 int 转换为 BigInt?

BigInt在 Dart 2(Dart VM 版本:2.0.0-dev.50.0)中玩这个类,我遇到了以下问题:

BigInt x = 5;

print(x % 3); // 2
print(x ~/ 3); // 1
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好,但是......

当我尝试访问这些方法时,例如:

print(x.pow(2));
Run Code Online (Sandbox Code Playgroud)

我得到一个NoSuchMethodError: Class 'int' has no instance method 'pow'异常。似乎x被视为香草味int......

此外,如果我尝试x更明确地实例化:

var x = new BigInt.from(5);
Run Code Online (Sandbox Code Playgroud)

我得到NoSuchMethodError: Class 'int' has no instance getter '_used'。

我误解了文档吗?具体来说,我们如何将int, like5['a', 'b', 'c'].length, 转换为BigInt对象?

编辑:虽然这并没有解释为什么BigInt x = 5然后这样的表达式x % 3不会产生错误并按预期工作,但这似乎只是由于BigInt …

dart

3
推荐指数
1
解决办法
2873
查看次数

如何投射从 json 创建的`_InternalLinkedHashMap`?

有时,在 Dart 中遍历复杂的 json 文件时,如果我们能告诉我们的编辑器预期的结构是什么,以便我们可以最好地利用编辑器的智能代码完成功能,那就太好了。

作为一个玩具示例,请考虑脚本writer.dart

import 'dart:convert' show json;

main() {
  Map<String, num> myMap = {"a": 1, "b": 2, "c": 3};
  print(json.encode(myMap));
}
Run Code Online (Sandbox Code Playgroud)

假设我们使用 writer.dart 创建一个 json 文件:

dart writer.dart > data.json
Run Code Online (Sandbox Code Playgroud)

我们有另一个名为reader.dart 的脚本,它将读取此文件并将数据理想地解释为一个Map<String, num>实例:

import 'dart:io' show File;
import 'dart:convert' show json;

main() async {
  Map<String, num> myMap = json.decode(await File("data.json").readAsString());
}
Run Code Online (Sandbox Code Playgroud)

但是,此脚本会引发异常type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, num>'

像以下这样的幼稚尝试也不起作用:

var myMap = json.decode(await …
Run Code Online (Sandbox Code Playgroud)

json dart

3
推荐指数
1
解决办法
4581
查看次数

标签 统计

dart ×4

clipboard ×1

html5 ×1

image ×1

json ×1

paste ×1

python ×1

python-typing ×1