문자열 비교는 어떤 코드를 사용해야 하나요?

@Cocos_No

The posting guideline of Klaytn 이 양식에 맞춰서 질문을 공유해주시면 감사하겠습니다.

질문을 해주실 때는 어떤 입력값과 어떤 코드로 테스트를 하셨는지 등을 매우 상세하게 말씀해주셔야 합니다.

또한 맨 처음에 공유해주신 코드와 나중에 공유해주신 코드가 다릅니다.
처음에 공유해주신 코드는 != 를 비교연산자로 사용하고 있고, 이후에 공유해주신 코드는 == 비교 연산자를 쓰고 계십니다.

처음에 첨부해주신 코드와 0.8.7 버전의 solc를 활용하여 아래의 컨트랙트 코드를
Baobab에 컴파일해서 배포를 해서 테스트를 해봤구요.

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Compare {
    function externalCompare(string memory org, string memory dst) public pure returns (bool) {
        return compare(org, dst);
    }
    function compare(string memory org, string memory dst) internal pure returns (bool) {
        return keccak256(abi.encodePacked(org)) != keccak256(abi.encodePacked(dst));
    }
}

compare.js · GitHub 와 같이 코드 작성해서 테스트를 해보았습니다.

서로 다른 입력값을 넣었을 때 true 가 결과로 나오는 것을 기대했구요, 실제로 테스트를 해보면 기대했던 결과가 잘 나오고 있습니다.

제가 이렇게 답변을 작성한 것처럼 어떤 테스트 절차와 코드를 사용했을 때 말씀하신 결과가 나오는지 등을
상세히 공유해주셔야 제대로 된 문제 해결이 가능합니다.

좋은 답변은 좋은 질문으로부터 나올 수 있는 점 참고 부탁드립니다. :slight_smile:

1개의 좋아요