【问题标题】:How to convert equivalent GO code to Java code?如何将等效的 GO 代码转换为 Java 代码?
【发布时间】:2018-10-09 12:48:51
【问题描述】:

我正在使用 Java 库进行 RPC 调用,我从需要转换为 java 的 GO 代码中获取参考。我对 go 语法一无所知。谁能帮我描述以下代码:

Params: []interface{}{
            from, // first parameter is address to send from (where the ZEC comes from)
            []interface{}{
                map[string]interface{}{
                    "amount":  msgval,
                    "address": to,
                    "memo":    hex.EncodeToString([]byte(msg)),
                },
            },

下面是方法,我正在尝试等效的 Java 代码:

Map<String,Object> params = new HashMap<>();
      params.put( "from", fromAddress );
      params.put( "amount", 1.0000 );
      params.put( "address", toAddress );
      params.put( "memo", hexMessage );

以下是参数说明:

这是一个异步 RPC 调用。从 地址到多个输出。地址可以是 taddr 或 zaddr。金额是一个包含键/值的列表 对应于地址和支付金额的对。 每个输出地址可以是 taddr 或 zaddr 格式。 发送到 zaddr 时,您还可以选择 以十六进制格式附加备忘录。

这对吗?

【问题讨论】:

  • 不完全正确,因为金额/地址/备忘录字段在 Go 版本中的自己的地图中。但在实践中,当您转换所有其余代码时可能会很好

标签: java go zcash


【解决方案1】:
Params: []interface{}{
            from, // first parameter is address to send from (where the ZEC comes from)
            []interface{}{
                map[string]interface{}{
                    "amount":  msgval,
                    "address": to,
                    "memo":    hex.EncodeToString([]byte(msg)),
                },
            },

大致是这样的伪代码:

Params => Array<Object>(
    $from,
    Array<Object>(
       Hash<String, Object>(
           "amount" => msgval,
           "address" => to,
           "memo" => hex.EncodeToString(msg),
       )
    )
)

所以,Params 的输入是

  1. 对象数组(即任何类型),其中
  2. 第一个元素是“发件人”地址,
  3. 第二个元素是另一个数组,
  4. 其中第一个元素是字符串到对象的哈希映射 (任何类型),您已经创建。

【讨论】:

    猜你喜欢
    • 2019-11-19
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多