铁人赛第四天!简单整理下昨日分享的输入方法有两种:
直接输入:直接把值本身当成输入。
间接输入:透过多种输入来传递消息,取得回传值,而回传值内容才是我们要的。
延续昨日的主题,
我整理了两点 『 优雅的 Ruby 』里比较观念上的想法进行提出分享。
ENV, 是 Ruby 中的环境变数 。
举例来说,写一个方法:
# =-=-=-=-=-=-=-=-=-=-=-=-=-=
# 1-6
def format_time
format = ENV.fetch('TIME_FORMAT'){ '%Q%r' }
Time.now.strftime(format)
end
format_time # "2021-09-09T01:33:23 AM"
# =-=-=-=-=-=-=-=-=-=-=-=-=-=
# 8-9
ENV['TIME_FORMAT'] = '%FT%T%:z'
format_time # "2021-09-09T01:33:23 - 04:00"
这里 1-6行里的 TIME_FORMAT 本身就是应用在每个记录行的时间戳格式。
我们把它当成 常数 输入於格式方法中,再输出当前时间。
这是属於一种 『 外部的输入 』。
然而,转到第 8-9 行,
原本应 ENV 格式化输出的,也因为受到外部环境变数影响( TIME_FORMAT )成了间接输入。
因此当程序码的关联性程序码关联性的互动越多,一但环境改变,方法也会跟着改变,
因此这不一定是好事。
间接输入的优化方式,在这法则上的应用的确是不错的解法。
这比喻一个对象应当对其他对象尽可能地少了解,并且不和陌生人说话。
不要以为它孤僻,
就拿正在进行的专案开发来说,
在功能开发的分配内容里,越明确且关联条件的重复率越低,效率是越高。
因为同时你也创造了在第三人快速取用你的开发功能时,能确保一目了然且无需交谈,自然也省去了很多交流时间。
此外,在 Ruby 世界中这第三人的动作,也能模拟成是『封装』。
(而所谓封装的定义就留给大家查询吧~毕竟我们把重心放在方法上。)
连续两天的收集输入为基础概念分享後,
今天暂以短篇分享做为『 收集收入的方法-- 间接输入 』来结尾吧。
明天将开始正式进入『 收集收入 』的应用练习题!
好好的摩拳擦掌!一起朝资优生笔记!
关关难!关关过!
注:
(%Q %r ,是ruby中一种转译符号的用法,也有更精简的缩写概念。
欲深入了解~可参考手册API。)
<<: [Day7] 学 Bootstrap 是为了走更长远的路 ~ Grid 篇 (2)
今年春天重版出来的《尼尔:人工生命 ver.1.22474487139...》第二代《尼尔:自动人形...
https://leetcode.com/problems/multiply-strings/ M...
昨天介绍到SECRET_KEY,不晓得前一天的东西大家有没有完全了解了呢! 那今天我们再来接着继续介...
本文同步更新於blog 情境:让我们利用备忘录模式,实作一个仿真Git 首先定义Commit &...
上午: Python程序设计 老师此次课程教学for回圈, List comprehension, ...