面向Java开发人员的Scala指南 - 用Scitter更新Twitter - 编程入门网
成各自的 Map 条目。然后,将一个新的 Map(由新创建的 Map 和从递归调用返回的 Map 组成 )返回到 optionsToMap。
然后,将 OptionalParam 的 Array[] 传递到 optionsToMap 嵌套函数。然 后,将返回的 Map 与我们构建的包含 status 消息的 Map 连接起来。最后,将 新的 Map 和用户名、密码一起传递给 Scitter.execute() 方法,以传送到 Twitter 服务器。 随便说一句,所有这些任务需要的代码并不多,但是需要更多的解释,这是 比较优雅的编程方式。 潜在的重构 理论上,传给 update 的可选参数与传给其他基于 GET 的 API 调用的可选 参数将受到同等对待;只是结果的格式有所不同(结果是用于 POST 的名称/值 对,而不是用于 URL 的名称/值对)。 如果 Twitter API 需要其他 HTTP 动作支持(PUT 和/或 DELETE 就是可能 需要的动作),那么总是可以将 HTTP 参数作为特定参数 — 也许又是一组 case 类 — 并让 execute() 以一个 HTTP 动作、URL、名称/值对的 map 以及 (可选)用户名/密码作为 5 个参数。然后,必要时可以将可选参数转换成一个 字符串或一组 POST 参数。这些内容只需记在脑中就行了。 显示 show 调用接受要检索的 Twitter 状态的 id,并显示 Twitter 状态。和 update 一样,这个方法非常简单,无需再作说明,如清单 7 所示: 清单 7. Scitter v0.3: show
还有问题吗? 面向Java开发人员的Scala指南 - 用Scitter更新*******(6)时间:2010-12-04 IBM Ted Neward另一种显示方法 如果想再试一下模式匹配,那么可以看看清单 8 中是如何以另一种方式编写 show() 方法的: 清单 8. Scitter v0.3: show redux
这个版本比起 if/else 版本是否更加清晰,这很大程度上属于审美的问题, 但公平而论,这个版本也许更加简洁。(很可能查看代码的人看到 Scala 的 “ 函数” 部分越多,就认为这个版本越吸引人。) 但是,相对于 if/else 版本,模式匹配版本有一个优势:如果 ******* 返 回新的条件(例如不同的错误条件或来自 HTTP 的响应代码),那么模式匹配版 本在区分这些条件时可能更清晰。例如,如果某天 ******* 决定返回 400 响应 代码和一条错误消息(在主体中),以表明某种格式错误(也许是没有正确地重 新 Tweet),那么与 if/else 方法相比,模式匹配版本可以更轻松(清晰)地 同时测试响应代码和主体的内容。 还应注意,我们还可以使用清单 8 中的方式创建一些局部应用的函数,这些 函数只需要 URL 和参数。但是,坦白说,这是一种自找麻烦的解放方案,所以 我不会采用。 面向Java开发人 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |