golang,WavRequest struct { SeHead string SeFoot string },如果SeHead不为空则filepath==SeHead,如果SeFoot不为空则filepath==SeFoot,都空或都不为空则返回error,最简洁的代码应该怎么写
时间: 2024-03-15 10:46:48 浏览: 151
可以这样实现:
```go
type WavRequest struct {
SeHead string
SeFoot string
}
func (wr *WavRequest) GetFilePath() (string, error) {
if wr.SeHead != "" && wr.SeFoot != "" {
return "", errors.New("SeHead and SeFoot cannot both be non-empty")
}
if wr.SeHead != "" {
return wr.SeHead, nil
}
if wr.SeFoot != "" {
return wr.SeFoot, nil
}
return "", errors.New("SeHead and SeFoot cannot both be empty")
}
```
在这个代码中,我们定义了一个 `WavRequest` 的结构体,包含了 `SeHead` 和 `SeFoot` 两个字段。接着,我们在结构体上定义了一个 `GetFilePath` 的方法,用于根据条件返回文件路径或者错误信息。在方法中,我们首先判断 `SeHead` 和 `SeFoot` 是否同时为空或者同时非空,如果是,则返回错误信息;否则,我们根据 `SeHead` 和 `SeFoot` 的值来返回对应的文件路径或者错误信息。这样,我们就实现了一个简洁而且有效的代码。
阅读全文