We can declare `nil` variables like below in swift 3.0

```
var aString : String?

```

then we can assign values after like this

```
aString = "hello"

```

then if we `concatenate` , we have to `cast` it like below

```
var newone: String = aString! + " stackoverflow"

```

> 
> But We can do the same thing like below and when we `concatenate`, we
>  do not need to `Unwrap`. why is that
> 
> 
> 

.

```
var bStirng : String

bStirng = "hello"
var newBString : String = bStirng + " StackOveflow"

```

**is the only advantage of using optional is that we can check whether the variable is nil or not**