由if语句多次赋值 [英] Multiple assignment by if statement

查看:151
本文介绍了由if语句多次赋值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有可能通过if条件执行多个赋值,如下面的代码所示:

It is possible to execute multiple assignment by if condition, like the following code?

func SendEmail(url, email string) (string, error) {

    genUri := buildUri()
    if err := setRedisIdentity(genUri, email); err != nil; genUrl, err := buildActivateUrl(url, genUri);  {
        return "", err
    }  

    return "test", nil

}


推荐答案

不。根据规范,在if语句的开头只允许有一个简单语句。

No. Only one 'simple statement' is permitted at the beginning of an if-statement, per the spec.

建议的方法是多个测试可能会返回一个错误,所以我想你想要的东西类似:

The recommended approach is multiple tests which might return an error, so I think you want something like:

func SendEmail(url, email string) (string, error) {
    genUri := buildUri()
    if err := setRedisIdentity(genUri, email); err != nil {
        return "", err
    }  
    if genUrl, err := buildActivateUrl(url, genUri); err != nil {
        return "", err
    }
    return "test", nil
}

这篇关于由if语句多次赋值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆