How does let x where x.hasSuffix(“pepper”) work

匿名 (未验证) 提交于 2019-12-03 02:57:02

问题:

In the code block below, I am having trouble understanding let x where x.hasSuffix("pepper").

let vegetable = "red pepper"  switch vegetable {     case "celery":         let vegetableComment = "Add some raisins and make ants on a log."     case "cucumber", "watercress":         let vegetableComment = "That would make a good tea sandwhich"     case let x where x.hasSuffix("pepper"):         let vegetableComment = "Is it a spicy \(x)"     default:         let vegetableComment = "Everything tastes good in soup." } 

Console output

vegetableComment: Is it a spicy red pepper

It seems like the following logic is happening.

x = vegetable if (x's suffix == 'pepper')      run case 

Can someone explain this better for me?

回答1:

vegetable is an implicit String. It's the same as you would write:

var vegetable: String = "red pepper" 

hasSuffix is declared as func hasSuffix(suffix: String) -> Bool an therefore returns a Bool. The where keyword specifies additional requirements, and can only be used in switch statements.
Because all of this is suffused, the vegetable variable is assigned to x (let x).

You can read more about the where and switch here.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!