Why am I getting a missing return at end of function in this code?

前端 未结 2 1534
面向向阳花
面向向阳花 2021-01-25 21:09
func getKeyNameFromDeploymentAndSubnet(subnetType SubnetType, deploymentType DeploymentType, keyNameMap map[SubnetType]string) string {
    if (deploymentType == NoDeplo         


        
相关标签:
2条回答
  • 2021-01-25 21:27

    You get this error because else statement must be on the same line as the closing } of the first condition.

    func getKeyNameFromDeploymentAndSubnet(subnetType SubnetType, deploymentType DeploymentType, keyNameMap map[SubnetType]string) string {
        if deploymentType == NoDeployment || deploymentType == PDBAWindows || deploymentType == AgentDeployment {
            return keyNameMap[subnetType]
        } else if deploymentType == AnsibleDeployment {
            return "bar"
        }
        return "foo"
    }
    
    0 讨论(0)
  • 2021-01-25 21:36

    Since you have a return statement in your first if, you may just drop the else statement. The second if is not going to be reached anyway if the first ones conditions are met.

    func getKeyNameFromDeploymentAndSubnet(subnetType SubnetType, deploymentType DeploymentType, keyNameMap map[SubnetType]string) string {
        if (deploymentType == NoDeployment || deploymentType == PDBAWindows || deploymentType == AgentDeployment) {
            return keyNameMap[subnetType]
        }
        if (deploymentType == AnsibleDeployment) {
            return "bar"
        }
        return "foo"
    }
    
    0 讨论(0)
提交回复
热议问题