阿里的文档代码都有股 Java 味。。

查看 94|回复 10
作者:voidmnwzp   
看得有点生理不适了
// This file is auto-generated, don't edit it. Thanks.
package main
import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  dyvmsapi20170525  "github.com/alibabacloud-go/dyvmsapi-20170525/v4/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)
/**
* 使用 AK&SK 初始化账号 Client
* @return Client
* @throws Exception
*/
func CreateClient () (_result *dyvmsapi20170525.Client, _err error) {
  // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见: https://help.aliyun.com/document_detail/378661.html 。
  config := &openapi.Config{
    // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET 。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }
  // Endpoint 请参考 https://api.aliyun.com/product/Dyvmsapi
  config.Endpoint = tea.String("dyvmsapi.aliyuncs.com")
  _result = &dyvmsapi20170525.Client{}
  _result, _err = dyvmsapi20170525.NewClient(config)
  return _result, _err
}
func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }
  batchRobotSmartCallRequest := &dyvmsapi20170525.BatchRobotSmartCallRequest{
    CalledShowNumber: tea.String("your_value"),
    CorpName: tea.String("your_value"),
    CalledNumber: tea.String("your_value"),
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // 复制代码运行请自行打印 API 的返回值
    _, _err = client.BatchRobotSmartCallWithOptions(batchRobotSmartCallRequest, &util.RuntimeOptions{})
    if _err != nil {
      return _err
    }
    return nil
  }()
  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
    // 错误 message
    fmt.Println(tea.StringValue(error.Message))
    // 诊断地址
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}
func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
povsister   
头一次见把 go 代码写这么丑的,有一种不伦不类的美
NeoZephyr   
有谁规定一定要怎么写了嘛
youngce   
_result,_err 真是天才🤣
NessajCN   
这段还好啊? 没发现太重的 oop 味儿
没整个 100 层的抽象封装继承算什么 jvav 味儿
yanyao233   
_err 草
flyqie   
阿里。。
阿里家换语言也是散不去的 java 味道。。
习惯了就好,只能再封装下眼不见为净。。
cbdyzj   
这个代码感觉是根据 Java 代码自动生成的吧,不像是人类写的
我记得之前看到过阿里云的 Python 的 SDK 是根据 Java SDK 自动生成的
gitrebase   
@cbdyzj 是的,第一行其实写得很清楚了:auto-generated
me1onsoda   
不懂就问,哪里有 Java 味
您需要登录后才可以回帖 登录 | 立即注册

返回顶部