有没有办法将多行字符串分配给对象属性?

时间:2016-06-01 02:42:28

标签: autohotkey

我知道您可以将多行字符串分配给这样的变量:

MyVar = 
(
this
is 
a 
string with multiple
lines
)

但是有没有办法将上面的字符串分配给对象属性?我尝试这样做但我收到了一个错误:

Array := {}
Array["key"] = 
(
this
is 
a 
string with multiple
lines
)

错误说:

  

以下变量名称包含非法字符
  "这个   是   一个
  字符串"

我只是希望能够在文本编辑器中打开我的脚本,并将多行字符串直接复制并粘贴到编辑器中作为对象的属性。

2 个答案:

答案 0 :(得分:1)

你必须使用正确的赋值运算符:= with Objects,同样你的文本需要被引号括起来。

尝试:

obj := {}

obj["key"] := 
( 
"this
is 
a 
string with multiple
lines"
)

MsgBox % obj["key"]

或者你可以在下面这样做:

x = 
(
this
is 
a 
string with multiple
lines
)

obj["key"] := x

MsgBox % obj["key"]

你也可以像这样构建一个多行对象:

obj := {"key": 
(
"this
is 
a 
string with multiple
lines"
)}

MsgBox % obj["key"]

答案 1 :(得分:0)

使用如下所示的原始多行字符串赋值,它可能会破坏您在脚本中可能产生的任何缩进。

str := {"Lines":
(
"first
second
third"
)}

虽然这样可行。如果您正在寻找保留代码缩进的方法,那么您可以通过使用`n这样划分行来创建多行字符串:

str := {"Lines": "first`nSecond`nThird"}