Reputation: 247
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"
}
In the first if
statement, I get an error of missing return at end of function error. I don't get this error if I remove the else if
statement. Where am I going wrong?
Upvotes: 0
Views: 3033
Reputation: 350
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"
}
Upvotes: 1
Reputation: 16035
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"
}
Upvotes: 3