In Sciter 3.2.0.3 I’ve added so called object match feature to built-in like operator and switch/like statement.
Let’s imagine that we have some sequence of objects/data like:
var shoppingCartData = [
{ product:"Apple", price: 0.95, calories:52 },
{ product:"Orange", price: 0.75, calories:47 },
{ product:"Toothbrush", price: 1.75 },
"deleted",
{ product:"Pear", price: 1.25, calories:57 },
{ product:"Soap", price: 2.75 },
];
And we would like to do something separately for food items and other purchased goods. With the new switch/like addition that will simply look like this:
for( var item in shoppingCartData )
switch(item)
{
like { price: Float, calories: Integer } :
// appears as a food item, do something with it
...
break;
like { price: Float } :
// not a food item
...
break;
case "deleted" :
// item was deleted, skip it
break;
default:
// unknown thing, is it just a present?
break;
}
Same pattern matching was added to the like expression:
if( item like { product: String, price: Float } )
stdout.println( item, "is a pricey product" );
Hope this will make life easier in some cases.