我是新手,发现错误处理非常冗长.我已经阅读了它的推理并且大多数都同意,但是有一些地方似乎有更多的代码来处理错误而不是实际工作.这是一个(人为的)例子,我在这里管道"Hello world!" 进入猫并阅读和打印输出.基本上每一行都有三个来处理错误,我甚至都没有处理任何事情.
package main
import "fmt"
import "io"
import "io/ioutil"
import "os/exec"
func main() {
cmd := exec.Command("cat", "-")
stdin, err := cmd.StdinPipe()
if err != nil {
return
}
stdout, err := cmd.StdoutPipe()
if err != nil {
return
}
err = cmd.Start()
if err != nil {
return
}
_, err = io.WriteString(stdin, "Hello world!")
if err != nil {
return
}
err = stdin.Close();
if err != nil {
return
}
output, err := ioutil.ReadAll(stdout)
if …Run Code Online (Sandbox Code Playgroud) 我有一个String(特别是一个SHA1十六进制摘要),我想分成两个子串 - 前两个字符和字符串的其余部分.在Rust中有一个干净的方法吗?