小编nor*_*ein的帖子

在golang中,如果某个方法必须具有指针接收器,是否有必要将一种类型的所有方法更改为具有指针接收器?

我正在研究 golang,对于在值或指针上定义方法有点困惑。正如文档中提到的:

接下来是一致性。如果该类型的某些方法必须具有指针接收器,则其余方法也应该具有指针接收器,因此无论如何使用该类型,方法集都是一致的。有关详细信息,请参阅方法集部分。

如果我有一个类型T,它需要实现几个接口。一个接口中的方法需要使用指针接收器,而另一个接口中的方法可以与值接收器很好地配合。是否有必要更改所有接口中的所有方法以具有指针接收器?如果是这样,为什么?

interface go

5
推荐指数
1
解决办法
1618
查看次数

用换行符替换空格,特殊字符包裹的空格除外

在 shell 中,我有一个存储私钥的变量,但是原始私钥中的每个换行符现在都被替换为一个空格,因此该变量如下所示:

PK="-----BEGIN RSA PRIVATE KEY----- aaa bbb ccc ... zzz -----END RSA PRIVATE KEY-----"
Run Code Online (Sandbox Code Playgroud)

现在我需要将字符串重定向到一个文件,我需要用换行符替换空格。但是如果我简单地运行echo $PK | tr " " "\n" > key, 中的空格BEGIN RSA PRIVATE KEYEND RSA PRIVATE KEY也将被换行符替换,所以我得到一个奇怪的文件,如下所示:

-----BEGIN
RSA
PRIVATE
KEY-----
aaa
bbb
ccc
...
zzz
-----END
RSA
PRIVATE
KEY-----
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何在键体中用换行符替换空格并保持里面的空格 -----不变。我期望得到的是:

-----BEGIN RSA PRIVATE KEY-----
aaa
bbb
ccc
...
zzz
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

linux bash shell

0
推荐指数
2
解决办法
4197
查看次数

标签 统计

bash ×1

go ×1

interface ×1

linux ×1

shell ×1