Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Swift Functions and Optionals Optionals What is an Optional?

Bachir Kurdi
Bachir Kurdi
10,098 Points

The search function below returns a name if it is found in the array and an empty string if it is not found. Modify the

func search(#name: String) -> String { let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"] for n in names { if n == name { return n } } return nil } if let person = search(name: "Doc") {

println("\(person) was found")

}

this is what i have made so fare but i keep getting error :( some help please

search.swift
func search(#name: String) -> String {
    let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"]
    for n in names {
        if n == name {
            return n
        }
    }
    return ""
}

1 Answer

Try this out. In swift, I don't think you can have two return statements in a function. Once your for in loop completes, it will move on to what code is after the loop, which is another return statement in your case.

func search(#name: String) -> String {
let names = ["Doc", "Grumpy", "Happy", "Sleepy", "Bashful", "Sneezy", "Dopey"]
    var matchedName = " "

    for n in names{
        if n == name{
            matchedName = name
        }
    }
    return matchedName
}

search(name: "Doc")

search(name: "Bachir Kurdi")