go-ml.dev/pkg/base@v0.0.0-20200610162856-60c38abac71b/fu/ife.go (about)

     1  package fu
     2  
     3  import "reflect"
     4  
     5  /*
     6  Ife returns x if expr == true else returns y
     7  */
     8  func Ife(expr bool, x interface{}, y interface{}) interface{} {
     9  	if expr {
    10  		return x
    11  	}
    12  	return y
    13  }
    14  
    15  /*
    16  Ifei returns x if expr == true else returns y
    17  */
    18  func Ifei(expr bool, x int, y int) int {
    19  	if expr {
    20  		return x
    21  	}
    22  	return y
    23  }
    24  
    25  /*
    26  Ifel returns x if expr == true else returns y
    27  */
    28  func Ifel(expr bool, x int64, y int64) int64 {
    29  	if expr {
    30  		return x
    31  	}
    32  	return y
    33  }
    34  
    35  /*
    36  Ifer returns x if expr == true else returns y
    37  */
    38  func Ifer(expr bool, x float32, y float32) float32 {
    39  	if expr {
    40  		return x
    41  	}
    42  	return y
    43  }
    44  
    45  /*
    46  Ifed returns x if expr == true else returns y
    47  */
    48  func Ifed(expr bool, x float64, y float64) float64 {
    49  	if expr {
    50  		return x
    51  	}
    52  	return y
    53  }
    54  
    55  /*
    56  Ifes returns x if expr == true else returns y
    57  */
    58  func Ifes(expr bool, x string, y string) string {
    59  	if expr {
    60  		return x
    61  	}
    62  	return y
    63  }
    64  
    65  /*
    66  Ifev returns x if expr == true else returns y
    67  */
    68  func Ifev(expr bool, x reflect.Value, y reflect.Value) reflect.Value {
    69  	if expr {
    70  		return x
    71  	}
    72  	return y
    73  }