我在Mac上运行的docker容器中使用kubectl.我已经成功配置kubectl的bash完成功能在Mac上运行,但是它在docker容器中不起作用.我总是得到bash: _get_comp_words_by_ref: command not found.
ubuntu:16.04docker 镜像基于并且kubectl通过该行安装(来自dockerfile的片段)
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && \
mv kubectl /usr/local/bin
Run Code Online (Sandbox Code Playgroud)
echo $BASH_VERSION给我4.3.48(1)-release,并根据apt,bash-completion安装包.
我正在使用iTerm2作为终端.
知道为什么它不起作用或如何让它工作?
我想编写一个通用equals方法,其工作原理如下:
func equals[T any](a, b T) bool {
if hasEqualsMethod(T) {
return a.Equals(b)
else if isComparable(T) {
return a == b
}
panic("type cannot be compared")
}
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个界面Comparable:
type Comparable[T any] interface {
// Equals returns true if the receiver and the argument are equal.
Equals(T) bool
}
Run Code Online (Sandbox Code Playgroud)
我可以检查 equals 的参数是否实现了这个Comparable接口,如下所示:
func equals[T any](a, b T) bool {
aComp, ok := any(a).(Comparable[T])
if ok {
return aComp.Equals(b)
}
...
Run Code Online (Sandbox Code Playgroud)
然而,到目前为止,我发现不可能找出是否a也满足comparable约束并将其转换为 …