I have a dictionary and I want to use some of its values as a key for another dictionary:

```
let key: String = String(dictionary["anotherKey"])

```

here, `dictionary["anotherKey"]` is `42` but when I print `key` in the debugger I see the following:

```
(lldb) expression print(key)
Optional(42)

```

How is that possible? To my understanding, the `String()` constructor does **not** return an optional (and the compiler **does not complain** when I write `let key: String` instead of `let key: String?`). Can someone explain what's going on here?

As a sidenote, I am currently solving this using the `description()` method.