在单独的行上连接字符串的方法
Methods to concatenate strings on separate lines
这会产生换行符:
%(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 抱怨我应该使用单引号字符串而不是双引号字符串,因为没有插值。
通常你会把这样的东西放在一行上,可读性该死,因为替代方案会有问题。没有办法声明忽略空格的字符串,但您可以这样做:
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 或其他工具正确编码。通过尽可能长时间地将参数保留为数据而不是编码字符串,您可以更轻松地发现错误以及对它们进行最后一秒的更改。
@tadman 的回答明确提出了正确的方法;为了多样性,我将 post 另一种方法:
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"
这会产生换行符:
%(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 抱怨我应该使用单引号字符串而不是双引号字符串,因为没有插值。
通常你会把这样的东西放在一行上,可读性该死,因为替代方案会有问题。没有办法声明忽略空格的字符串,但您可以这样做:
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 或其他工具正确编码。通过尽可能长时间地将参数保留为数据而不是编码字符串,您可以更轻松地发现错误以及对它们进行最后一秒的更改。
@tadman 的回答明确提出了正确的方法;为了多样性,我将 post 另一种方法:
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"