空手道变量值是否根据参考进行了更改?

Is karate variable values are altered with reference?

在下面的代码中,您可以看到变量 defaultHeaders 被复制到一个名为 myHeaders 的新变量中。 现在,当更改 myHeaders 的值时,正在更改 defaultHeaders 变量的值。

这是正确的吗?我错过了一些基本的东西吗?请解释。

我希望原始的 defaultHeaders 将保持不变以供其他场景使用。

空手道版本:0.9.4

Feature: test one

  Background:

    * def defaultHeaders = { 'app-Id' : "defaultApp" }

  @ScenarioOne
  Scenario: scenario one
    * def myHeaders = defaultHeaders
    * print myHeaders  \ prints {  "app-Id": "defaultApp" }
    * myHeaders["app-Id"] = 'MyNewAppId'
    * print myHeaders   \ prints {  "app-Id": "MyNewAppId" }
    * print defaultHeaders   \ prints {  "app-Id": "MyNewAppId" }
    * print myHeaders  \ prints {  "app-Id": "MyNewAppId" }
    * def calltoSecond = call read('featureTwo.feature@ScenarioTwo') { customHeader: '#(myHeaders)'}

请查看copy关键词:https://github.com/intuit/karate#type-copy

* copy myHeaders = defaultHeaders