in src/PSRule.Rules.Azure/Data/Template/Functions.cs [544:559]
internal static object Last(ITemplateContext context, object[] args)
{
if (args == null || args.Length != 1)
throw ArgumentsOutOfRange(nameof(Last), args);
if (args[0] is IMock mock && mock.BaseType != TypePrimitive.String && mock is JToken token)
return token.Last;
else if (args[0] is Array avalue)
return avalue.Length > 0 ? avalue.GetValue(avalue.Length - 1) : null;
else if (args[0] is JArray jArray)
return jArray.Count > 0 ? jArray.Last : null;
else if (ExpressionHelpers.TryString(args[0], out var svalue))
return new string(svalue[svalue.Length - 1], 1);
return null;
}