有人可以为我解释 Lucky Stiff 的 Camping 微框架中的这部分代码吗:
# Simply builds a complete path from a path +p+ within the app. If your
# application is mounted at <tt>/blog</tt>:
#
# self / "/view/1" #=> "/blog/view/1"
# self / "styles.css" #=> "styles.css"
# self / R(Edit, 1) #=> "/blog/edit/1"
#
def /(p); p[0] == ?/ ? @root + p : p end
最佳答案
def /(p);
方法名为'/',接收参数'p'
p[0] == ?/
检查字符串是否以“/”开头。问号用于指定字符按字面意思使用。你也可以认为它与'/'相同
p[0] == ?/ ? exp1:exp2
第二个问号用于条件评估。如果表达式 (p[0] == ?/) 为真,则计算 exp1,否则计算 exp2。
因此在上述情况下,如果字符串参数以 '/' 开头,则返回值 @root + p,即在它前面加上根。另一方面,如果参数不是以 '/' 开头,则按原样返回。
关于ruby - 露营的路径构建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470916/