使用块、元编程和惯用模式编写富于表现力的 Ruby 代码。
对象. m.是一项面向实际任务的技能,主要用于Proc vs lambda, 返回行为 : blocks. md. 可视性, 方法 missing. md.;Arrray/hash 突变陷阱 . recurations. md. define me。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
| 主题 | 文件 |
|---|---|
| 可变字符串、对象相等性 | objects.md |
| Proc 与 lambda、return 行为差异 | blocks.md |
| 可见性控制、method_missing | methods.md |
| Array/Hash 的变异陷阱 | collections.md |
| define_method、eval 相关陷阱 | metaprogramming.md |
| ActiveRecord、N+1 问题、回调 | rails.md |
s = "hi"; s << "!"; t = s 意味着 t 同样包含 "!"== vs equal? vs eql? — == 比较值,equal? 比较对象标识(identity),eql? 用于哈希键比较(hash equality)Hash.new([]) 中的空数组被所有缺失键共享,应使用块形式(block form)return 会从其外围方法返回 — 若需局部返回,请使用 lambdax = 1; [2].each { |x| }; x 的结果仍是 1(Ruby 3.0+)method_missing 而未实现 respond_to_missing? — 将导致 respond_to? 检查失效private 是按对象生效的 — self.private_method 调用会失败,而隐式接收者调用才有效||= 无法区分 false 与 nil — false ||= true 会将 false 替换为 true# frozen_string_literal: true 可使字符串变为不可变Symbol#to_proc — &:method_name 仅适用于无参方法rescue => e 未指定异常类型时 — 仅捕获 StandardError 及其子类,不捕获 Exceptionensure 块总会执行 — 即使之前已执行了 return,适用于资源清理等场景相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习