Hi, I’m stuck with Morse Decoder where I believe I have my code right but still I get a String error which I cannot solve.
My code:
var englishText = "this is a secret message"
var secretMessage = ".... --- .-- -.. -.-- .--. .- .-. - -. . .-."
// Add your code below 🤫
var letterToMorse = [
"a: .-",
"b: -...",
"c: -.-.",
"d: -..",
"e: .",
"f: ..-.",
"g: --.",
"h: ....",
"i: ..",
"j: .---",
"k: -.-",
"l: .-..",
"m: --",
"n: -.",
"o: ---",
"p: .--.",
"q: --.-",
"r: .-.",
"s: ...",
"t: -",
"u: ..-",
"v: ...-",
"w: .--",
"x: -..-",
"y: -.--",
"z: --.."
]
var morseText = ""
for element in englishText {
if let morseChar = letterToMorse["\(element)"] {
morseText += morseChar + " "
} else {
morseText += " "
}
}
print(morseText)
Error:
Morse.swift:37:35: error: cannot subscript a value of type '[String]' with an argument of type 'String'
if let morseChar = letterToMorse["\(element)"] {
^
Morse.swift:37:35: note: overloads for 'subscript' exist with these partially matching parameter lists: ((UnboundedRange_) -> ()), (Int), (Range<Int>), (Range<Self.Index>)
if let morseChar = letterToMorse["\(element)"] {
^
Any help would be very much appreciated!
Regards,
Fredrik