Go关键字--if else


友情推广
在这里插入图片描述

if else

if else用于条件判断,else关键字用于处理if条件以外的情况,是对if的一种补充,if else基本语法是:

if condition {
    // do sonething
}

if condition {
    //do something
} else {
    // do something
}

多种情况条件判断,if语句实现方式是:

if condition1 {
    // do something
} else if condition2 {
    // do something
} else {
    // other
}

golang的if语句比c/c++的if语句有一个特殊额之处,主要由于golang函数可以返回多个值,如果在if中调用返回多个值的函数,那么if就不知道哪个返回值是bool类型了。golang中解决if使用多返回值的办法是:

if val, ok:= 函数调用; ok {
    // do something
}

首先假设函数调用放回两个参数,第一个返回值是字符串类型,第二个返回值是bool类型。获取到两个返回值后,使用分号隔开,在分号后边判断bool类型变量,如果ok为true,执行if中的代码块,如果ok为false,跳过if中的代码块。

下边来看一段示例代码:

package main

import (
	"fmt"
)

func demo() (str string, flag bool) {
	return "hello world", true
}
func main() {
	// 第一种写法
	str, ok := demo()
	if ok {
		fmt.Println(str)
	}

	// 第二种写法
	if val, ok := demo(); ok {
		fmt.Println(val)
	}
}

在遇到函数返回多个值的情况下,第二种写法明显比第一种写法更为简洁。并且从变量作用域的角度来看,main函数中,str变量作用域是main函数内,而val变量的作用域是if代码块内,使用第二种写法可以更好的限制变量的作用域。

猜你喜欢

转载自blog.csdn.net/hzwy23/article/details/82874527