Go x509.ParsePKIXPublicKey
Block
中pem.Decode()
给出的示例遇到运行时错误,因为nil
返回的pem.Decode()
为pem.Decode()
。
(official documentation)
然而,const pubPEM = `
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----`
block, _ := pem.Decode([]byte(pubPEM))
var pubPEMData = []byte(`
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----`)
block, rest := pem.Decode(pubPEMData)
中的示例运行得很好。 (Playground example)
我在两个示例中发现的唯一区别是公钥的初始化方式以及它在spaceID|rent
----------------
1 | 1000
2 | 1200
中的使用方式。
第一个例子:
id|spaceID|name
--------------------
1 |1 |Joe Smith
2 |1 |Jane Smith
3 |2 |Frank Zakk
4 |2 |Nancy Zakk
5 |2 |Sam Zakk
第二个例子:
spaceID |rent |resident1 |resident2 |resident3| resident4
1 |1000 |Joe Smith |Jane Smith| |
2 |1200 |Frank Zakk|Nancy Zakk|Sam Zakk |
我已编辑了第一个示例,以便以与第二个示例相同的方式完成,但这并未改变结果。 (official documentation)
导致第一次失败但导致第二次失败的原因是什么?