StructNew

Creates a new struct of the specified type.

The available types are:

  • casesensitive

  • default

  • ordered-casesensitive

  • ordered

  • soft

  • sorted

  • weak

Method Signature

StructNew(type=[string], sortType=[any], sortOrder=[string], localeSensitive=[any], callback=[function:Comparator])

Arguments

Argument
Type
Required
Description
Default

type

string

false

The struct type

default

sortType

any

false

An optional sort type to apply to that type

sortOrder

string

false

The sort order applicable to the sortType argument

asc

localeSensitive

any

false

false

callback

function:Comparator

false

An optional callback to use as the sorting function. You can alternatively pass a Java Comparator.

Examples

New struct using literal notation

Creates an unordered struct.

Run Example

unordered = { 
	A : 1,
	C : 3,
	B : 2
};
writeDump( unordered );

New struct using function

Creates an unordered struct.

Run Example

unordered = structNew();
unordered.A = 1;
unordered.B = 2;
unordered.C = 3;
writeDump( unordered );

New ordered struct using literal notation

CF2016+ Creates an ordered struct. Note the square brackets.

Run Example

ordered = [ 
	A : 1,
	B : 2,
	C : 3
];
writeDump( ordered );

New ordered struct using function

Creates an ordered struct.

Run Example

ordered = structNew( "ordered" );
ordered.A = 1;
ordered.B = 2;
ordered.C = 3;
writeDump( ordered );

New ordered struct using literal notation

Creates an ordered struct.

ordered = [];
ordered.A = 1;
ordered.B = 2;
ordered.C = 3;
writeDump( ordered );

New case-sensitive struct using function

CF2021+ Creates a case-sensitive struct.

Run Example

casesensitive = structNew( "casesensitive" );
casesensitive.A = 1;
casesensitive.B = 2;
casesensitive.C = 3;
writeDump( casesensitive );

New case-sensitive struct using literal notation

CF2021+ Creates a case-sensitive struct.

casesensitive = $;
{
	A : 1,
	B : 2,
	C : 3
};
writeDump( casesensitive );

New ordered and case-sensitive struct using function

CF2021+ Creates a case-sensitive struct.

Run Example

someStruct = structNew( "ordered-casesensitive" );
someStruct.C = 3;
someStruct.B = 2;
someStruct.A = 1;
writeDump( someStruct );

New ordered and case-sensitive struct using literal notation

CF2021+ Creates an ordered and case-sensitive struct.

someStruct = $;
[
	C : 3,
	B : 2,
	A : 1
];
writeDump( someStruct );

Additional Examples

dump( var=structNew( "soft" ), label="soft" );
dump( var=structNew( "weak" ), label="weak" );
dump( var=structNew( "linked" ), label="linked" );
st = {
	"one" : [
		1,
		2,
		3
	],
	"two" : {
		"three" : QueryNew( "id" )
	},
	THREE : "unquoted keys don't preserve case"
};
dump( st );
dump( structKeyList( st ) );
dump( structKeyExists( st, "one" ) );
// shorthand syntax for a new empty ordered struct, [=] also works
st = [];
st.C = 1;
st.B = 2;
st.A = 3;
dump( st );
// shorthand syntax for an ordered struct with values
st = [
	C : 1,
	B : 2,
	A : 3
];
dump( st );
<bx:set st = structNew() >

<bx:set st[ "name" ] = "John Doe" >
<bx:set st[ "age" ] = 30 >
<bx:set st[ "city" ] = "New York" >

<bx:dump var="#st#">

Last updated

Was this helpful?