首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala -如何在多行字符串文本中使用变量

Scala -如何在多行字符串文本中使用变量
EN

Stack Overflow用户
提问于 2016-05-16 12:10:58
回答 2查看 15.8K关注 0票数 5

我想调用'myActionID‘变量的值。我该怎么做?如果我将"actionId":1368201这样的静态值传递给myActionID,那么它可以工作,但是如果我使用"actionId“:${actionIdd},则会产生错误。

以下是相关代码:

代码语言:javascript
复制
class LaunchWorkflow_Act extends Simulation {

    val scenarioRepeatCount = 1
    val userCount = 1
    val myActionID = "13682002351"
    
    val scn = scenario("LaunchMyFile")
        .repeat (scenarioRepeatCount) {
            exec(session => session.set("counter", (globalVar.getAndIncrement+" "+timeStamp.toString())))
            .exec(http("LaunchRequest")
            .post("""/api/test""")
            .headers(headers_0)
            .body(StringBody(
                """{    "actionId": ${myActionID} ,
                "jConfig": "{\"wflow\":[{\"Wflow\":{\"id\": \"13500145349\"},\"inherit-variables\": true,\"workflow-context-variable\": [{\"variable-name\": \"externalFilePath\",\"variable-value\": \"/var/nem/nem/media/mount/assets/Test.mp4\"},{\"variable-name\": \"Name\",\"variable-value\": \"${counter}\"}]}]}"
                }""")))

            .pause(pause) 

        }
    }

setUp(scn.inject(atOnceUsers(userCount))).protocols(httpProtocol)

如果我将值为13682002351而不是myActionID,那么一切都很好。在Gatling中执行这个脚本时,我得到了这个错误

错误i.g.http.action.HttpRequestAction - 'httpRequest-3‘执行失败:没有定义名为'myActionID’的属性

EN

回答 2

Stack Overflow用户

发布于 2016-05-16 15:14:07

Scala有各种字符串插值机制(参见文档),可用于在字符串中嵌入变量。所有这些都可以与"""用于创建多行字符串的三元引号一起使用。

在这种情况下,您可以使用:

代码语言:javascript
复制
val counter = 12
val myActionID = "13682002351"
val str = s"""{    
                "actionId": $myActionID ,
                "jConfig": "{\"wflow\":[{\"Wflow\":{\"id\": \"13500145349\"},\"inherit-variables\": true,\"workflow-context-variable\": [{\"variable-name\": \"externalFilePath\",\"variable-value\": \"/var/nem/nem/media/mount/assets/Test.mp4\"},{\"variable-name\": \"Name\",\"variable-value\": \"${counter}\"}]}]}"
              }"""

注意,s加到字符串文字中,美元符号加在变量名前面。

票数 14
EN

Stack Overflow用户

发布于 2020-05-28 15:29:51

使用S内插字符串,我们可以很容易地做到这一点:

代码语言:javascript
复制
 s"""Hello Word , Welcome Back!
      How are you doing ${userName}"""
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37253631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档