在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
RUBY惯用方法目录
迭代一般写法:
习惯写法:
||=赋值一般写法:
习惯写法:
程序入口
这个相当于main(), 逻辑判断的意思当程序名($0或另一个)和当前文件名(FILE)一致时,也就是当前文件是被单独执行的而不是被别的文件调用。这个方法还有个用法是作为unit test使用 预设变量和特殊记号类似$0的Perl风格预设常量还有很多,参见Programming Ruby p319 其中比较常用的如$:代表库搜索路径,修改方法常见有:
后一种方法使用了相对路径,因为Ruby的module不要求namespace和文件目录结构要对应一致,很多时候统统放一个目录里 %w格式化命令(from qiezi) 可以少打几个引号
(~键下的撇号)用来执行shell外部命令,如:
inject一般写法:
习惯写法:
inject有点难理解,相当于python的reduce和一些FP里的fold。inject的块变量有两个(这里是array和item),第二个变量(item)用来枚举被inject的集合(这里是(1..10)这个range), 而第一个变量(array)由inject的参数初始化(这里是[],可选),并在block被反复执行时保持持久(相当于静态变量),而item则在每次枚举时被更新为下一个值。我们再看一下inject的另一种通常用法就会更明白了:求和
也就是块变量sum被初始化成0然后反复迭代执行块的内容,最后返回sum 并行赋值这个很多人都知道了,比如:
当然可以延伸出一些很诡异的变化,不提倡使用阿 还有一个用法是让函数返回“多个结果”(不是多个对象),如:
其实函数返回的是一个array,然后再并行匹配到变量上去。(所以我对多个结果特别加了引号) 注意这种并行匹配当两遍不平衡时会造成的问题:
*的匹配一般来说*用于把一个array展开:
类似FP里的x:xs(haskell), x::xs(ocaml), [a | b] (erlang from 布娃娃) rescue简单用法
可以简化为
命名参数的默认值ruby有默认参数,但其实没有所谓keyword argument,而是提供一个syntax sugar用hash模拟。但是怎么像Rails的方法那样同时利用命名参数和默认参数值呢?
精细duck typing控制duck typing的精神就是行为决定类型,而不是相反
获取metaclass这也比较常见了,各种动态伎俩的开始
符号转换到Proc一般写法:
习惯写法:
map(fun(x))般的FP风格
Facets库包括大量对Ruby核心类的扩展,是个有趣而又危险的大杂烩 随机生成字符串
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论