这会产生换行符:
%(https://api.foursquare.com/v2/venues/search
?ll=80.914207,%2030.328466&radius=200
&v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259
&intent=browse)
这会产生空格:
"https://api.foursquare.com/v2/venues/search
?ll=80.914207,%2030.328466&radius=200
&v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259
&intent=browse"
这会产生一个字符串:
"https://api.foursquare.com/v2/venues/search"\
"?ll=80.914207,%2030.328466&radius=200"\
"&v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259"\
"&intent=browse"
当我想在多行上分隔一个字符串以便在屏幕上更好地阅读时,是否首选使用转义字符?
我的IDE抱怨我应该使用单引号字符串而不是双引号字符串,因为没有插值。
答案 0 :(得分:2)
通常你会把这样的东西放在一条线上,可读性会被诅咒,因为替代方案会有问题。没有办法声明忽略空格的字符串,但你可以这样做:
url = %w[ https://api.foursquare.com/v2/venues/search
?ll=80.914207,%2030.328466&radius=200
&v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259
&intent=browse
].join
您明确删除空格的位置。
我实际建议通过正确编写此URI来避免这一切:
uri = url("https://api.foursquare.com/v2/venues/search",
ll: [ 80.914207,30.328466 ],
radius: 200,
v: 20161201,
m: 'foursquare',
categoryId: '4d4b7105d754a06374d81259',
intent: 'browse'
)
你有某种帮助函数,可以使用URI或其他工具对其进行正确编码。通过尽可能长时间地将参数保持为数据而不是编码字符串,可以更容易地发现错误并对其进行最后一次更改。
答案 1 :(得分:1)
@tadman的答案肯定表明了正确的方法;我会为了多样性而发布另一种方法:
query = "https://api.foursquare.com/v2/venues/search"
"?ll=80.914207,%2030.328466&radius=200"
"&v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259"
"&intent=browse"
是的,没有任何可见的连接,连续一行引用4个字符串。此示例在irb
/ pry
中不起作用(由于它具有REPL性质),但上面是最有效的方法,用于连接ruby中的字符串而不生成任何中间字符串结果
在pry
/ irb
中测试的受控示例:
value = "a" "b" "c" "d"