Ruby新手求助:如何在双引号字符串中调用方法
在Ruby双引号字符串中调用方法的正确方式
嘿,作为Ruby初学者,别担心,这个问题其实很常见——Ruby的双引号字符串天生就支持嵌入表达式(包括方法调用),不过首先得先修正你代码里的小问题,再一步步实现你想要的效果:
第一步:修正方法定义
你的callme方法写法有语法错误,Ruby里定义带参数的方法需要明确参数列表,像这样:
def callme(path) # 这里写方法的逻辑,比如返回你想要的路径内容 # 举个例子,假设你要返回拼接后的字符串 "sourced_from_#{path}" end
注意:方法需要有返回值(Ruby里方法默认返回最后一行的结果),这样后面插值的时候才能拿到有效内容。
第二步:在双引号中用字符串插值调用方法
Ruby双引号字符串支持#{}语法来嵌入任意Ruby表达式,包括方法调用。你只需要把方法调用放到#{}里就行:
v = "string + #{callme("this string")}"
这样执行后,v的值就会是"string + sourced_from_this string"(对应上面方法的返回结果)。
完整示例代码
把这些整合起来,完整的代码应该是这样:
# 定义带参数的方法 def callme(path) "sourced_from_#{path}" end # 在双引号字符串中插值调用方法 v = "string + #{callme("this string")}" # 验证结果 puts v # 输出:string + sourced_from_this string
如果你的callme方法不需要参数,那直接写#{callme}就可以,原理是一样的——#{}里可以放任何能返回值的Ruby代码。
内容的提问来源于stack exchange,提问作者Zazy
相关产品推荐
相关产品推荐

