国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

solidity第七課——變量初始值和常數(shù)

這篇具有很好參考價值的文章主要介紹了solidity第七課——變量初始值和常數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一,變量初始值

在solidity中,聲明但沒賦值的變量都有它的初始值或默認(rèn)值。這一講,我們將介紹常用變量的初始值。

1.值的初始值

    bool public _bool; // false
    string public _string; // ""
    int public _int; // 0
    uint public _uint; // 0
    address public _address; // 0x0000000000000000000000000000000000000000(共44位)

    enum ActionSet { Buy, Hold, Sell}
    ActionSet public _enum; // 第一個元素 0

    function fi() internal{} // internal空白方程 
    function fe() external{} // external空白方程 

2.引用類型初始值

映射mapping:所有元素都為其默認(rèn)值mapping

結(jié)構(gòu)體struct:所有成員都默認(rèn)設(shè)為對應(yīng)默認(rèn)值結(jié)構(gòu)體

數(shù)組array:動態(tài)數(shù)組[];靜態(tài)數(shù)組[定長]所有成員都默認(rèn)設(shè)為對應(yīng)默認(rèn)值數(shù)組

我可以使用public中的getter函數(shù)驗證初始值是否正確:

uint[8] public _staticArray; // 所有成員設(shè)為其默認(rèn)值的靜態(tài)數(shù)組[0,0,0,0,0,0,0,0]
    uint[] public _dynamicArray; // `[]`
    mapping(uint => address) public _mapping; // 所有元素都為其默認(rèn)值的mapping
    // 所有成員設(shè)為其默認(rèn)值的結(jié)構(gòu)體 0, 0
    struct Student{
        uint256 id;
        uint256 score; 
    }
    Student public student;

delete會使變量變?yōu)槌跏贾?/p>

bool public _bool2 = true; 
    function d() external {
        delete _bool2; // delete 會讓_bool2變?yōu)槟J(rèn)值,false
    }

?二,常數(shù)

這就繞不開solidity中的兩個關(guān)鍵字,constent(常量)和immutable(不變量),狀態(tài)變量聲明這個兩個關(guān)鍵字之后,不能在合約后更改數(shù)值;并且還可以節(jié)省gas。另外,只有數(shù)值變量可以聲明constent和immutable;string和bytes可以聲明constent,但immutable卻不可以聲明。

constent

constent變量必須在聲明的時候初始化,之后再也不能改變。嘗試改變的話,編譯不通過。

// constant變量必須在聲明的時候初始化,之后不能改變
    uint256 constant CONSTANT_NUM = 10;
    string constant CONSTANT_STRING = "0xAA";
    bytes constant CONSTANT_BYTES = "WTF";
    address constant CONSTANT_ADDRESS = 0x0000000000000000000000000000000000000000;

immutable

immutable變量可以在聲明時或構(gòu)造函數(shù)中初始化,因此更加靈活。

    uint256 public immutable IMMUTABLE_NUM = 9999999999;
    address public immutable IMMUTABLE_ADDRESS;
    uint256 public immutable IMMUTABLE_BLOCK;
    uint256 public immutable IMMUTABLE_TEST;

你可以使用全局變量例如address(this),block.number?,或者自定義的函數(shù)給immutable變量初始化。在下面這個例子,我們利用了test()函數(shù)給IMMUTABLE_TEST初始化為9

    // 利用constructor初始化immutable變量,因此可以利用
    constructor(){
        IMMUTABLE_ADDRESS = address(this);
        IMMUTABLE_BLOCK = block.number;
        IMMUTABLE_TEST = test();
    }

    function test() public pure returns(uint256){
        uint256 what = 9;
        return(what);
    }

讓不應(yīng)該變的變量保持不變。這樣的做法能在節(jié)省gas的同時提升合約的安全性。文章來源地址http://www.zghlxwxcb.cn/news/detail-853633.html

到了這里,關(guān)于solidity第七課——變量初始值和常數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 剪枝與重參第七課:YOLOv8剪枝

    剪枝與重參第七課:YOLOv8剪枝

    手寫AI推出的全新模型剪枝與重參課程。記錄下個人學(xué)習(xí)筆記,僅供自己參考。 本次課程主要講解YOLOv8剪枝。 課程大綱可看下面的思維導(dǎo)圖 YOLOV8剪枝的流程如下: 結(jié)論 :在VOC2007上使用yolov8s模型進(jìn)行的實驗顯示,預(yù)訓(xùn)練和約束訓(xùn)練在迭代50個epoch后達(dá)到了相同的mAP(:0.5)值,約

    2023年04月22日
    瀏覽(36)
  • STM32第七課:PWM控制SG90舵機

    STM32第七課:PWM控制SG90舵機

    ????????學(xué)習(xí)完上一課的PWM控制LED小燈實現(xiàn)呼吸燈的效果,我們就可以進(jìn)一步學(xué)習(xí)PWM控制舵機的效果了。PWM控制舵機相信會是一個更有意思的小實驗的。 ???????? 舵機是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔

    2024年04月17日
    瀏覽(24)
  • 復(fù)習(xí)第七課 C語言-指針數(shù)組,函數(shù),string

    復(fù)習(xí)第七課 C語言-指針數(shù)組,函數(shù),string

    目錄 【1】指針和數(shù)組 【2】數(shù)組指針 【3】指針數(shù)組 【4】函數(shù) 【5】函數(shù)傳參 【6】動態(tài)開辟堆區(qū)空間 【7】string函數(shù)族 【8】遞歸函數(shù) 練習(xí): 直接訪問:通過數(shù)組名訪問 間接訪問:通過指針訪問 》1. 一維數(shù)組 運算方法: 1) *和++都是彈幕運算符,優(yōu)先級相同 2) 單目運算

    2024年02月16日
    瀏覽(20)
  • 吳恩達(dá)llama課程筆記:第七課llama安全工具

    吳恩達(dá)llama課程筆記:第七課llama安全工具

    ?羊駝Llama是當(dāng)前最流行的開源大模型,其卓越的性能和廣泛的應(yīng)用領(lǐng)域使其成為業(yè)界矚目的焦點。作為一款由Meta AI發(fā)布的開放且高效的大型基礎(chǔ)語言模型,Llama擁有7B、13B和70B(700億)三種版本,滿足不同場景和需求。 吳恩達(dá)教授推出了全新的Llama課程,旨在幫助學(xué)習(xí)者全面

    2024年04月25日
    瀏覽(42)
  • 隱語第七課:多方安全分析語言SCQL架構(gòu)詳解

    隱語第七課:多方安全分析語言SCQL架構(gòu)詳解

    目錄 1、SCQL的定義 2、SCQL主要特點 3、SCQL的實現(xiàn)原理? ?4、SCQL對SQL的支持能力 5、列控制列表CCL 5.1 什么是CCL 5.2 CCL的設(shè)計緣由 5.3 CCL約束詳解 6、SCQL的使用場景 7、下面分享Slides 首先必須感謝螞蟻集團(tuán)及隱語社區(qū)帶來的學(xué)習(xí)機會!? 第七課由操順德老師講述,核心內(nèi)容是 詳解

    2024年04月11日
    瀏覽(22)
  • 單片機第三季-第七課:STM32中斷體系

    單片機第三季-第七課:STM32中斷體系

    目錄 1,NVIC 2,中斷和事件的區(qū)別 3,優(yōu)先級的概念? 4,如何實際編程使用外部中斷 5,STM32開發(fā)板通過按鍵控制LED? 5.1,打開相應(yīng)GPIO模塊時鐘 5.2,NVIC設(shè)置 5.3,外部中斷線和配套的GPIO進(jìn)行連接映射 5.4,代碼文件? 6,F(xiàn)SMC NVIC: Nested Vector Interrupt Control,嵌套向量中斷控制器;

    2024年01月18日
    瀏覽(32)
  • React框架第七課 語法基礎(chǔ)課《第一課React你好世界》

    從這一課開始真正進(jìn)入到React框架的基礎(chǔ)語法學(xué)習(xí),之前的前五課做個了解即可。 ├── README.md 使用方法的文檔 ├── node_modules 所有的依賴安裝的目錄 ├── package-lock.json 鎖定安裝時的包的版本號,保證團(tuán)隊的依賴能保證一致。 ├── package.json ├── public 靜態(tài)公共目錄

    2024年02月02日
    瀏覽(23)
  • C語言第七課----------函數(shù)的定義及使用--------C語言重要一筆

    C語言第七課----------函數(shù)的定義及使用--------C語言重要一筆

    ???????????????????????????????? ? ? ? ? ?????????個人主頁::小小頁面 ?????????????????gitee頁面:秦大大 ? ? ? ? ? ? ? ??一個愛分享的小博主?歡迎小可愛們前來借鑒 __________________________________________________________ ?????? ??1.函數(shù)是什么 ??

    2024年02月16日
    瀏覽(13)
  • 【Golang入門教程】Go語言變量的初始化

    【Golang入門教程】Go語言變量的初始化

    強烈推薦 前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站: 人工智能 推薦一個個人工作,日常中比較常用的人工智能工具,無需魔法,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站: 人工智能工具 引言 在Go語言中,變量

    2024年04月17日
    瀏覽(106)
  • 4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    我們知道在c++11中才能在成員對象聲明時初始化,像下面這樣。 注意:構(gòu)造函數(shù)不是初始化,而是賦初始值。那么在c++11以前該怎么初始化成員變量呢? 每個成員變量在初始化列表中只能出現(xiàn)一次(初始化只能初始化一次) 類中包含以下成員,必須放在初始化列表位置進(jìn)行初始

    2024年01月20日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包