Solidity delete keyword

Solidity์˜ delete

solidity์—๋Š” delete() ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract MyContract {
    uint public number;
    uint[] public dynamicArr;
    uint[5] public fixedArr;
    mapping(uint => uint) public map;

    constructor() {
        number = 5;
        dynamicArr.push(5);
        fixedArr[0] = 5;
        map[0] = 5;
    }

    function deleteAll() external {
        delete number; // reset value to zero
        delete dynamicArr; // reduces size to 0
        delete fixedArr; // reset all values to zero
        // delete map; // error
        delete map[0]; // ok
    }
}

uint, uint[], uint[5], mapping ์ž๋ฃŒ๊ตฌ์กฐ์— ์‚ฌ์šฉํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์–ด๋–ค ์ž๋ฃŒํ˜•์— ์‚ฌ์šฉํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ๋‹น์—ฐํžˆ ์ ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์€ ํ•˜๋‚˜์ด๋‹ค.

delete ํ‚ค์›Œ๋“œ๋Š” ์‚ญ์ œ๊ฐ€ ์•„๋‹Œ ์žฌ์„ค์ •์ด๋‹ค.

๋ณ€์ˆ˜ ๊ฐ’์„ ์ดˆ๊ธฐ ๊ธฐ๋ณธ ์ƒํƒœ๋กœ ์žฌ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

๋‹น์—ฐํžˆ ์ดˆ๊ธฐ ๊ธฐ๋ณธ ์ƒํƒœ๋Š” 0์ด๋‹ค. ๋งˆ์น˜ free() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ NULL(0)์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

  1. ์ •์ˆ˜(signed/unsigned)์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

  2. bool ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋ฅผ false๋กœ ์„ค์ •ํ•œ๋‹ค.

  3. address ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋ฅผ 0(๊ธฐ๋ณธ๊ฐ’) ์ฃผ์†Œ๋กœ ์„ค์ •ํ•œ๋‹ค.

  4. ๊ณ ์ • ํฌ๊ธฐ ๋ฐฐ์—ด ๋ฐ ๋ฐ”์ดํŠธ์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

  5. ๋™์  ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์ œ๊ฑฐํ•˜๊ณ  ๊ธธ์ด๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

  6. ๊ตฌ์กฐ์ฒด์˜ ๊ฒฝ์šฐ ๊ฐ ๋ฉค๋ฒ„๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

Last updated