swift中基本bool的默认值是多少?

时间:2017-09-11 11:05:20

标签: swift boolean

我想快速了解Bool, 如果Bool是基本数据类型(原始),那么为什么bool默认值为nil

 var test: Bool!
 print(test) // nil

在java Bool中,默认值为false

enter image description here

Default value of Boolean in java

3 个答案:

答案 0 :(得分:11)

Bool Bool! Bool? Swift <中都有所不同/强>

1。 Bool 非可选数据类型,其值可以为true/false。您需要在初始化程序中初始化它或在使用它之前声明它。

var x : Bool = false

var x: Bool
init()
{
   x = false
}

2。 Bool? 可选数据类型,其值可以为nil/true/false。要使用此类型,您需要使用if let or force unwrapping打开它。

var x: Bool?

if let value = x
{
   //TODO: use value instead of x
}

3。 Bool! 隐式展开的可选数据类型,其值可以为nil/true/false。这里的区别是它在使用之前必须包含一个值,否则它将导致runtime exception。由于它是隐式展开的,因此无需使用if let or force unwrapping打开它。

var x: Bool! //Must contain value before using

答案 1 :(得分:2)

严格地说,Swift中有没有默认值。

  • Bool 非可选,您必须指定(默认)值
  • Bool可选而不是nil - 就Swift而言无价值

答案 2 :(得分:0)

Swift中的

Bool 一个原语。 Swift中的所有东西都是物体。您的变量testBool!,这是一个隐式展开的可选项,默认值为nil

如果您使用此代码(非可选),

var test: Bool
print(test)

您将收到错误消息:

  

变量&#39;测试&#39;在初始化之前使用

所以在Swift中你必须在使用之前初始化东西,例如:

var test: Bool = false