Неиспользуемое унарное выражение - это быстрый способ исправить ошибку компиляции здесь.Но правильный подход - правильно выполнить проверку содержимого перед его передачей в защищенную функцию.
Например, у нас может быть функция проверки / очистки, которая принимает испорченное значение и возвращает незапятнанное значение после выполнениянекоторая проверка, как показано ниже.
function validate(string input) returns @untainted string {
string regEx = "[^a-zA-Z]";
return input.replace(regEx, "");
}
В приведенном выше примере, используя аннотацию @untainted
, мы можем пометить возвращаемое значение функции как незапятнанное значение.Это значение теперь может быть напрямую передано в защищенную функцию, которая ожидает незапятнанное значение.Таким образом, мы можем переписать ваш пример, как показано ниже.
import ballerina/http;
endpoint http:Client clientEndpoint {
url: "http://localhost:9090"
};
function main(string... args) {
http:Request req = new;
string userInput = validate(args[0]);
json jsonMsg = {input: userInput};
req.setJsonPayload(jsonMsg);
// rest of the program
}
function validate(string input) returns @untainted string {
string regEx = "[^a-zA-Z]";
return input.replace(regEx, "");
}
Вышеуказанная функция проверки является только примером.Но в зависимости от требования мы можем написать функцию для фактической проверки и возврата защищенного содержимого.Более подробная информация доступна по адресу: https://ballerina.io/learn/by-example/taint-checking.html