I couldn't understand the difference between a explicitly declared String and an implicitly unwrapped optional string.
For example,
If we initialzse a String explicitly,
let assumedString:String = "Test String"
print(assumedString)
gives the output
"Test String"
"Test String\n"
in playground.
Likewise if we implicitly unwrap an optional string like this,
let assumedString:String! = "Test String"
print(assumedString)
gives the same output
"Test String"
"Test String\n"
And also once we use '!' while initializing, then its value cannot be nil. So We can use the explicit type right?
Then why do we have to use the concept of using '!' (implicitly unwrapping an optional string).
Kindly explain the difference or the use of using '!' with a code example if possible.