我正在寻找更好的发现。原因是查找用户界面对我来说不直观(特别是修剪/打印样式),并且由于对参数排序的严格要求而难以包装在函数中。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) 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) 我是 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)