是否有单个shell命令将执行以下操作:
cp header page.html
markdown page.md >> page.html
cat footer >> page.html
Run Code Online (Sandbox Code Playgroud)
(默认情况下Markdown输出到stdout.)
一位同事建议
echo $(cat header) $(markdown page.md) $(cat footer) >> page.html
Run Code Online (Sandbox Code Playgroud)
但除了三个子壳和两只猫,这可能会让我赢得"无用的猫"奖,它也会剥夺换行线 - 这是不好的,特别是在<pre><code>街区.
我想要的是这样的东西(显然不起作用)
cat header $(markdown page.md) footer > page.html
Run Code Online (Sandbox Code Playgroud)
我可以告诉cat使用子shell的输出来读取其中一个文件.理想情况下,无需设置任何临时文件,命名管道等.
我想创建一个不可变的,引用数据类型,并添加如下:
use std::ops::Add;
struct Point {
x: i64,
y: i64,
}
impl<'a> Add for &'a Point {
type Output = Point;
fn add(self, other: &Point) -> Point {
Point {
x: self.x + &other.x,
y: self.y + &other.y,
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何实现添加特征以引用结构?建议Add在引用类型上实现.
我可以做到这一点,在哪里a和b是Point:
let c = &a + &b;
let d = &c + &b;
Run Code Online (Sandbox Code Playgroud)
但不是这个:
let d = &a + &b + &b;
Run Code Online (Sandbox Code Playgroud)
我不介意这些&迹象,但不能连锁添加对我来说并不好看.我想实现乘法(z = a + …