我想创建一个函数,如果条件在函数内部传递,则返回整数值,否则返回浮点数。如何使用Go处理?谢谢!
答案 0 :(得分:2)
在Golang中不可能直接做到这一点。通常,静态类型的语言通常会尽力防止这种情况的发生,因为这会使类型检查变得非常困难。类型检查是必需的,因为整数和浮点本质上是不兼容的。
您可以返回interface{}
。但是,呼叫者将如何知道您返回了什么?
答案 1 :(得分:1)
这是您要找的东西吗?
package main
import "fmt"
func number(intOrFloat bool) interface{} {
if intOrFloat { //return int if this flag is true
return 5
}
return 5.5
}
func main() {
printType(number(true))
printType(number(false))
printType("Nihanth")
}
func printType(value interface{}) {
if number, ok := value.(int); ok {
fmt.Printf("I have got an integer %d\n", number)
} else if number, ok := value.(float64); ok {
fmt.Printf("I have got float %f\n", number)
} else {
fmt.Printf("%+v is not integer or float", value)
}
}
答案 2 :(得分:0)
是的,有可能。您只需要以浮点数形式返回它即可:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfireCache': FactoryBean threw exception on object creation; nested exception is java.lang.ExceptionInInitializerError
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:178)
唯一重要的是如何设置其显示格式。