code: @SuppressWarnings({"unchecked", "rawtypes"})
  	Object assignElement(Scope scope) {
  		Object target = scope.get(id);
  		if (target == null) {
  			throw new TemplateException("The assigned targets \"" + id + "\" can not be null", location);
  		}
  		Object idx = index.eval(scope);
  		if (idx == null) {
  			throw new TemplateException("The index of list/array and the key of map can not be null", location);
  		}
  		
  		Object value;
  		if (target instanceof Map) {
  			value = right.eval(scope);
  			((Map)target).put(idx, value);
  			return value;
  		}
  		
  		if ( !(idx instanceof Integer) ) {
  			throw new TemplateException("The index of list/array can only be integer", location);
  		}
  		
  		if (target instanceof List) {
  			value = right.eval(scope);
  			((List)target).set((Integer)idx, value);
  			return value;
  		}
  		if (target.getClass().isArray()) {
  			value = right.eval(scope);
  			java.lang.reflect.Array.set(target, (Integer)idx, value);
  			return value;
  		}
  		
  		throw new TemplateException("Only the list array and map is supported by index assignment", location);
  	}
docs: 数组或 Map 赋值