상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 솔리디티에서 'this' 키워드는 무엇을 의미하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
솔리디티(Solidity)에서 'this' 키워드는 현재 컨트랙트의 <a href='https://sangseek.com/sangseeks/인스턴스/ko'>인스턴스</a>를 참조하는 데 사용됩니다. 이는 객체 지향 프로그래밍에서 'this' 키워드가 현재 객체를 가리키는 것과 <a href='https://sangseek.com/sangseeks/유사한 개념/ko'>유사한 개념</a>입니다. 'this'를 사용하면 현재 컨트랙트의 상태 변수, 함수, 그리고 다른 속성에 접근할 수 있습니다. 1. 'this'의 기본 개념 솔리디티에서 'this'는 현재 컨트랙트의 주소를 반환합니다. 이는 컨트랙트가 배포된 후, 해당 컨트랙트의 주소를 통해 다른 컨트랙트나 외부 계정에서 호출할 수 있는 방법을 제공합니다. 예를 들어, 'this'를 사용하여 현재 컨트랙트의 메서드를 호출하거나, 다른 컨트랙트에 현재 컨트랙트의 주소를 전달할 수 있습니다. 2. 'this'의 사용 예시 ```solidity pragma solidity ^0.8.0; contract MyContract { uint public value; constructor() { value = 10; } function getValue() public view <a href='https://sangseek.com/sangseeks/return/ko'>return</a>s (uint) { return value; } function callGetValue() public view returns (uint) { return this.getValue(); // 'this'를 사용하여 현재 컨트랙트의 <a href='https://sangseek.com/sangseeks/메서드 호출/ko'>메서드 호출</a> } } ``` 위의 예시에서 `callGetValue` 함수는 'this'를 사용하여 `getValue` 메서드를 호출합니다. 이는 현재 컨트랙트의 메서드를 명시적으로 호출하는 방법입니다. 3. 'this'와 가스 비용 'this'를 사용하여 메서드를 호출할 때, 해당 메서드는 외부 호출로 간주됩니다. 이는 가스 비용이 더 많이 소모된다는 것을 의미합니다. 내부 호출(즉, 같은 컨트랙트 내에서 직접 호출하는 경우)보다 가스 비용이 더 높기 때문에, 성능을 고려할 때 'this'의 사용을 신중하게 결정해야 합니다. 4. 'this'와 컨트랙트 주소 'this'는 현재 컨트랙트의 주소를 반환하므로, 이를 통해 다른 컨트랙트와 상호작용할 수 있습니다. 예를 들어, 다른 컨트랙트에 현재 컨트랙트의 주소를 전달하여, 해당 컨트랙트가 현재 컨트랙트의 상태를 변경하거나 메서드를 호출할 수 있도록 할 수 있습니다. ```solidity contract AnotherContract { function interactWithMyContract(address myContractAddress) public { MyContract myContract = MyContract(myContractAddress); uint value = myContract.getValue(); // Do something with the value } } ``` 위의 예시에서 `AnotherContract`는 `MyContract`의 주소를 받아서 해당 컨트랙트의 메서드를 호출합니다. 5. 결론 솔리디티에서 'this' 키워드는 현재 컨트랙트의 인스턴스를 참조하는 중요한 도구입니다. 이를 통해 현재 컨트랙트의 메서드와 상태 변수에 접근할 수 있으며, 다른 컨트랙트와의 상호작용을 용이하게 합니다. 그러나 'this'를 사용할 때는 가스 비용을 고려해야 하며, 가능한 경우 내부 호출을 통해 성능을 최적화하는 것이 좋습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기