

This Post describes the usability of Spread and Rest Operations.
Operators define a quick way of implementing complex functionality with a short concise easy to use syntax. ColdFusion exposes multiple operators to ease out the complex operations. With this objective in mind, we have introduced the Spread and Rest Operators.
Spread Operator: Spread Operator allows an Iterable Object(Array/Struct/String) to be expanded into individual elements. The Spread Operator is represented by Three Dots (…).
Syntax:
Array Literals : […iterableObject, 2021, …”ColdFusion”] ;
Object Literals : clonedObject = {…Object};
Function Calls : result = setFunctionValues(…iterableObject);
Lets take some examples to simulate the various use-cases, where a developer can use Spread Operator.
Function Call:
<
cfscript
>
numbers = [1,2,3];
writeDump(sum( ...numbers ));
function sum(required x,required y,required z) {
return x + y + z;
}
</
cfscript
>
<
cfscript
>
numbers = [1,2,3];
list = [...numbers,
'4'
,
'five'
, 6,...numbers]; // [1,2,3,'4','five',6,1,2,3]
writeDump(list);
</
cfscript
>
<
cfscript
>
arr = [...
"12345"
,
"tep"
,...
"ColdFusion"
,
"test"
];
writeDump(arr);
</
cfscript
>

<
cfscript
>
obj1 ={ foo:
'bar'
, x: 42 };
obj2 ={ foo:
'baz'
, y: 13 };
mergedObj1 ={...obj1,...obj2};
writeDump(mergedObj1);
</
cfscript>

<cfscript>
function myFun(a, b, ...manyMoreArgs) {
writeDump(a); // Output: "one"
writeDump(; // Output: "two"
writeDump(manyMoreArgs);// Output : ["three","four","five","six"]
}
myFun("one", "two", "three", "four", "five", "six");
</cfscript>

For more details about the usage of Spread/Rest Operators using ColdFusion Markup Language, Please refer to the documentation links:
- Spread Operator: https://helpx.adobe.com/coldfusion/developing-applications/the-cfml-programming-language/using-expressions-and-number-signs/expressions-developing-guide.html#spread-operator
- Rest Operator: https://helpx.adobe.com/coldfusion/developing-applications/the-cfml-programming-language/using-expressions-and-number-signs/expressions-developing-guide.html#rest-operator
Operators define a quick way of implementing complex functionality with a short concise easy to use syntax. ColdFusion exposes multiple operators to ease out the complex operations. With this objective in mind, we have introduced the Spread and Rest Operators.
Spread Operator: Spread Operator allows an Iterable Object(Array/Struct/String) to be expanded into individual elements. The Spread Operator is represented by Three Dots (…).
Syntax:
Array Literals : […iterableObject, 2021, …”ColdFusion”] ;
Object Literals : clonedObject = {…Object};
Function Calls : result = setFunctionValues(…iterableObject);
Lets take some examples to simulate the various use-cases, where a developer can use Spread Operator.
Function Call:
<
cfscript
>
numbers = [1,2,3];
writeDump(sum( ...numbers ));
function sum(required x,required y,required z) {
return x + y + z;
}
</
cfscript
>
<
cfscript
>
numbers = [1,2,3];
list = [...numbers,
'4'
,
'five'
, 6,...numbers]; // [1,2,3,'4','five',6,1,2,3]
writeDump(list);
</
cfscript
>
<
cfscript
>
arr = [...
"12345"
,
"tep"
,...
"ColdFusion"
,
"test"
];
writeDump(arr);
</
cfscript
>

<
cfscript
>
obj1 ={ foo:
'bar'
, x: 42 };
obj2 ={ foo:
'baz'
, y: 13 };
mergedObj1 ={...obj1,...obj2};
writeDump(mergedObj1);
</
cfscript>

<cfscript>
function myFun(a, b, ...manyMoreArgs) {
writeDump(a); // Output: "one"
writeDump(; // Output: "two"
writeDump(manyMoreArgs);// Output : ["three","four","five","six"]
}
myFun("one", "two", "three", "four", "five", "six");
</cfscript>

For more details about the usage of Spread/Rest Operators using ColdFusion Markup Language, Please refer to the documentation links:
- Spread Operator: https://helpx.adobe.com/coldfusion/developing-applications/the-cfml-programming-language/using-expressions-and-number-signs/expressions-developing-guide.html#spread-operator
- Rest Operator: https://helpx.adobe.com/coldfusion/developing-applications/the-cfml-programming-language/using-expressions-and-number-signs/expressions-developing-guide.html#rest-operator

- Most Recent
- Most Relevant
Seems like ashuspeed couldn’t be bothered updating the article. Not too surprising from the CF Team I guess (ping MarkTakata). Anyhow, if anyone else wants to get to the docs page from here… it’s https://helpx.adobe.com/coldfusion/developing-applications/the-cfml-programming-language/using-expressions-and-number-signs/expressions-developing-guide.html#spread-operator
Cheers for this.
It would be handy if you included a link to the docs for this in the article somewhere, especially given when I google for “coldfusion rest operator”, I get this blog article, but the docs don’t seem to show up at all.