小编Ste*_*ski的帖子

最佳 GNU 查找替代品

我正在寻找更好的发现。原因是查找用户界面对我来说不直观(特别是修剪/打印样式),并且由于对参数排序的严格要求而难以包装在函数中。locate/updatedb 不够灵活,无法使用。有人愿意分享他们的示例查找包装器或查找替代方案(请仅使用命令行)吗?

这是我认为不直观的用法的示例:

find dir_a dir_b \( -path dir_a/.git -o -path dir_b/out \) -prune -o \( -type f -o -type l \)
Run Code Online (Sandbox Code Playgroud)

在选项之前指定目录对我来说很奇怪,而且修剪的语法很容易被忘记。(有些程序使用 --exclude 选项代替。)我认识到这是一个挑剔的点。

这是我在不损失太多功能的情况下指定一些默认值的最佳尝试:

f()
{
  # The trouble is that -regextype must appear after path but before expression.
  # HACK: "-D debugopts" unsupported and -[HLPO] options assumed to before dirs.
  local a=()
  while [[ -n "$1" ]] && ( [[ ! "${1:0:1}" =~ [-!(),] ]] || [[ "${1:0:2}" =~ -[HLPO] ]] )
  do
    a+=("$1")

    # Eliminate arg …
Run Code Online (Sandbox Code Playgroud)

find command-line-interface ack ag ripgrep

5
推荐指数
1
解决办法
870
查看次数

Python中的"with"关键字Lambda函数

Python的with关键字如何用lambda函数表示?考虑以下:

def cat (filename):
    with open(filename, 'r') as f:
        return f.read()
Run Code Online (Sandbox Code Playgroud)

尝试lambda实现失败:

cat = lambda filename: with open(filename, 'r') as f: return f.read()
Run Code Online (Sandbox Code Playgroud)

python lambda

5
推荐指数
1
解决办法
1425
查看次数

如何惯用地从 Option<T> 转换为 Result<T, ()>?

我是 Rust 新手!从 an 转换Option<T>为 a的最佳方法是Result<T, ()>什么?

TryFrom特质似乎流行并返回结果。流行的 num_traits 的NumCast有很多转换,但它们都返回一个Option<T>. 类似地,Rust 标准库中的 NonZero* 构造函数(如NonZeroI32)也是如此。然后我注意到 NumCast 实现了一个返回 an 的,所以我想也许它有一种非标准的做事方式,但后来我看到了 NonZero* 实现并质疑了这个想法。from()Option<T>

无论如何,从选项到结果的转换似乎很频繁,我还没有找到一种巧妙的方法。例如:

/// Add common conversion from an i32 to a non-zero i32.
impl TryFrom<Container<i32>> for Container<NonZeroI32> {
  type Error = ();
  fn try_from(container: Container<i32>) -> Result<Self, ()> {
    // NonZeroI32::new() returns an Option not a Result. Try a helper.
    Ok(Self(option_to_result(NonZeroI32::new(container.0))?))
  }
}

/// Helper …
Run Code Online (Sandbox Code Playgroud)

rust

2
推荐指数
1
解决办法
263
查看次数

标签 统计

ack ×1

ag ×1

command-line-interface ×1

find ×1

lambda ×1

python ×1

ripgrep ×1

rust ×1