Cuando estás iniciando en Solidity en algún momento puede ser que necesites comparar Strings. Tan acostumbrado que estoy a javaScript, quería aplicar una manera similar en Solidity, resultando que la manera difiere bastante.
Los operadores de comparación (== y !=) no son compatibles con strings.
La solución es comparar los hashes de keccak256, los strings no pueden ser pasados directamente a keccak256, por lo que nos valdremos de abi.encodePacked() para que tomen el string a comparar.
Aquí tenemos un ejemplo:
function comparison(string memory _nombre){
require(keccak256(abi.encodePacked(_nombre) == keccak256(abi.encodePacked('Carla'), "El nombre debe ser Carla.")
}
PD: Estoy aprendiendo Solidity y es muy probable que halle mejores maneras de hacer comparaciones luego, especialmente por el costo que puedan tener. Dejo por aquí el enlace original de donde aprendí este método: https://soliditytips.com/articles/compare-strings-solidity/
Top comments (0)