我正在研究 golang,对于在值或指针上定义方法有点困惑。正如文档中提到的:
接下来是一致性。如果该类型的某些方法必须具有指针接收器,则其余方法也应该具有指针接收器,因此无论如何使用该类型,方法集都是一致的。有关详细信息,请参阅方法集部分。
如果我有一个类型T,它需要实现几个接口。一个接口中的方法需要使用指针接收器,而另一个接口中的方法可以与值接收器很好地配合。是否有必要更改所有接口中的所有方法以具有指针接收器?如果是这样,为什么?
在 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 KEY和END 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)