Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 方法在单独的行上连接字符串_Ruby_String Literals - Fatal编程技术网

Ruby 方法在单独的行上连接字符串

Ruby 方法在单独的行上连接字符串,ruby,string-literals,Ruby,String Literals,这将产生新行: %(https://api.foursquare.com/v2/venues/search ?ll=80.914207,%2030.328466&radius=200 &v=20161201&m=foursquare&categoryId=4d4b7105d754a06374d81259 &am

这将产生新行:

%(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或其他工具对其进行正确编码。通过尽可能长时间地将参数保留为数据,而不是编码字符串,您可以更容易地发现错误并在最后一秒对其进行更改。

通常您会将类似的内容放在一行,可读性会受到影响,因为替代方案会有问题。无法声明忽略空白的字符串,但可以执行以下操作:

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给出的答案明确地建议了正确的方法;为了多样性,我将发布另一种方法:

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"

@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"

仅供参考,这里没有逃逸序列。在此上下文中,反斜杠是一个“行连续字符”。选项1和2都会生成换行符和空格的组合。这三个都会产生一个字符串。如果在第三个示例中使用单引号字符串会怎么样?这样IDE就不会抱怨:DJFYI,这里没有转义序列。在此上下文中,反斜杠是一个“行连续字符”。选项1和2都会生成换行符和空格的组合。这三个都会产生一个字符串。如果在第三个示例中使用单引号字符串会怎么样?这样IDE就不会抱怨了:DWhy没有人提到最明显的方式,即通过
+
的实际连接?无需进一步解释,可接受的开销,适用于大多数语言:耸耸肩:为什么没有人提到最明显的方式,通过
+
的实际连接?无需进一步解释,可接受的开销,适用于大多数语言:耸耸肩:在Rails中,helper函数调用\u查询散列),在Rails中,helper函数调用\u查询散列)