【发布时间】:2021-06-30 21:47:41
【问题描述】:
var OpDoub:Optional<Double> = 1.23
func noopt(_ pp: Any) -> Any {
return pp
}
var p:Any = noopt(OpDoub)
print(p) // Optional(1.23)
print(p!) // error: cannot force unwrap value of non-optional type 'Any'
我可以在声明一个 P 后得到 1.23 的值吗? 我试过了:
var pp:Any? = p
print(pp) // Optional(Optional(1.23)) it turned out even worse :D
print(pp!) // Optional(1.23)
【问题讨论】:
-
你到底想问什么?
-
我可以将
p:Any转换为p:Any?以获得1.23。有可能吗? -
可选只是另一种值,它们本身可以分配一个
Any。这可能会导致令人困惑的行为,这就是为什么这样做会引发编译器警告。您忽略了该警告,因此现在您看到了令人困惑的行为。那么你到底想达到什么目的呢?