代码之家  ›  专栏  ›  技术社区  ›  Andrew Bannerman

使用joinPath()将特定字符串插入较长的字符串-类似r paste()。

  •  0
  • Andrew Bannerman  · 技术社区  · 7 年前

    好的,所以这在0.7中有效。

    tickers = ["IWB","IWP","IVV","IYY","IEV","EEM","TLT"]
    t=1
    res = joinpath("https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY_ADJUSTED&symbol="tickers[t]"&outputsize=full&apikey=your_key&datatype=csv")
    

    语法:不能将字符串文本并置

    在v1.1中做了哪些更改,或者有人可能会建议另一种方法将tickers[t]的内容插入到上面的路径中。

    paste() joinpath() 在里面 julia 是我的替代品。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Colin T Bowers    7 年前

    这在v0.7中肯定不起作用(我刚刚检查过)。

    表单的任何代码模式:

    "abc"d"efg"
    

    将引发相同的错误,因为Julia正试图从 d"efg" 然后把它和绳子放在一起 "abc" . 您在这里需要的操作是字符串插值,例如:

    ticker = "ABC"
    res = "https://somepath/symbol=$(ticker)&morestuff"
    

    当然,您也可以使用:

    ticker = "ABC"
    res = string("https://somepath/symbol=", ticker, "&morestuff")
    

    我相信过去这是真的 string 在某些情况下,直接操作可能更有效。但是@dnf建议(在注释中)这两种方法现在都比同一代码低,所以使用您喜欢的任何语法。我个人认为内插代码语法更清晰。在您正在执行的操作(请求库存数据)的上下文中,效率差异无论如何都是无意义的。

    我不太清楚你为什么要用 joinpath 从那以后 连接路径 用于为当前操作系统生成文件/目录地址。使用 连接路径 构建URL字符串不是一个好主意,因为在Windows操作系统上, 连接路径 将使用 \ 不是 / . 偶数 join 它允许您指定联接时使用的分隔符,但在这里没有真正意义,因为您不希望在标记代码的任一侧使用斜线。

    推荐文章