Multiple assignment by if statement

前端 未结 2 1791
借酒劲吻你
借酒劲吻你 2021-02-06 09:30

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

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

    genUri := buildU         


        
相关标签:
2条回答
  • 2021-02-06 10:24

    It looks like you want something like this:

    package main
    
    import "fmt"
    
    func a(int) int { return 7 }
    
    func b(int) int { return 42 }
    
    func main() {
        if x, y := a(1), b(2); x > 0 && x < y {
            fmt.Println("sometimes")
        }
        fmt.Println("always")
    }
    

    Output:

    sometimes
    always
    
    0 讨论(0)
  • 2021-02-06 10:28

    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
    }
    
    0 讨论(0)
提交回复
热议问题