戴尔网站建设成功做企业网站的缺点
news/
2025/9/23 8:42:04/
文章来源:
戴尔网站建设成功,做企业网站的缺点,软件公司名字,青岛网站seo服务else 操作
我们有简单的用户处理程序#xff1a;
func handleRequest(user *User) {if user ! nil {showUserProfilePage(user)} else {showLoginPage()}
}如果没有提供用户#xff0c;则需要将收到的请求重定向到登录页面。If else 似乎是个不错的决定。但我们的主要任务是…else 操作
我们有简单的用户处理程序
func handleRequest(user *User) {if user ! nil {showUserProfilePage(user)} else {showLoginPage()}
}如果没有提供用户则需要将收到的请求重定向到登录页面。If else 似乎是个不错的决定。但我们的主要任务是确保业务逻辑单元在任何输入情况下都能正常工作。因此让我们使用提前返回来实现这一点。
func handleRequest(user *User) {if user nil {return showLoginPage()} showUserProfilePage(user)
}逻辑是一样的但是下面的做法可读性会更强。
break 操作
对我来说Break 和 Continue 语句总是可以分解的信号。
例如我们有一个简单的搜索任务。找到目标并执行一些业务逻辑或者什么都不做。
func processData(data []int, target int) {for i, value : range data {if value target {performActionForTarget(data[i])break}}
}
你应该始终记住使用 break 操作符并不能保证整个数组都会被处理。这对性能有好处因为我们丢弃了不必要的迭代但对代码支持和可读性不利。因为我们永远不知道程序会在列表的开头还是结尾停止。
在某些情况下带有子任务的简单功能可能会破坏这段代码。
func processData(data []int, target int, subtask int) {for i, value : range data {if value subtask {performActionForSubTarget(data[i])}if value target {performActionForTarget(data[i])break}}
}这样我们实际上可以拆出一个 find 的方法
func processData(data []int, target int, subTarget int) {found : findTarget(data, target)if found notFound {performActionForTarget(found)}found findTarget(data, subTarget)if found notFound {performActionForSubTarget(found)}
}const notFound -1func findTarget(data []int, target int) int {if len(data) 0 {return notFound}for _, value : range data {if value target {return value}}return notFound
}
同样的逻辑但是拆分成更细粒度的方法也有精确的返回语句可以很容易地通过测试来实现
continue 操作
该操作符与 break 类似。为了正确阅读代码您应该牢记它对操作顺序的具体影响。
func processWords(words []string, substring string) {for _, word : range words {if !strings.Contains(word, substring) {continue}// do some buisness logicperformAction(word)}
}
Continue 使得这种简单的流程变得有点难以理解。
让我们写得更简洁些
func processWords(words []string, substring string) {for _, word : range words {if strings.Contains(word, substring) {performAction(word)}}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911934.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!