[Day24]solidity合约内容讲解2


hi~我们今天要讨论有关solidity合约内容,今天的内容会延续昨天的!所以如果还没看昨天的建议先去看昨天的影片呦!(传送门)

资料储存位置

(毕竟你每搬一次东西,就会需要矿工,就会花钱:(

  1. Calldata:read only
  2. Memory:会随着你的function生而生,死而死
  3. storage:会随着你的合约生而生,死而死

合约宣告

contract helloworld{
//这就是宣告一个helloworld的合约,然後这里可以输入一些可爱的合约内容
}

版本宣告

pragma solidity >=0.7.0 <0.9.0;
//意思是0.7.0~0.9.0之间的任何版本都可以执行这项合约。

授权宣告

// SPDX-License-Identifier: GPL-3.0
//如果不想要公开的话,可以把GPL-3.0改成UNLICENSED

方法function

function functionname(参数,参数2) 可见度 可变性 returns(回传的资料){
}

//回传资料可有可无,取决於你要或不要回传
//可见度与可变性一定要宣告
//参数以及回传值都可以是多个,要用逗号隔开
//functionname不可以用保留字
function store(uint256 num) public {
        number = num;
}

可见度

  • Private:不想被外面看到,也只能被自己呼叫
  • Public:公开的,可以被自己或外部的function呼叫
  • External:可以被外部合约直接呼叫,但不能被内部合约直接呼叫,假如function叫做x,不能直接呼叫x,要呼叫this.x()

state的可变性

  • Pure:不会读也不会写state
  • View:只读不写state
  • Default:可读也可写state
小练习:宣告一个公开、可读不可写、名为abc的function,参数a为int型态,要回传int型态的b。

那今天的介绍就到这边拉~
真的是没有很专业的介绍,比较像是跟大家分享我学到甚麽,我还有很多要学习的地方:(
如果喜欢的话明天记得继续回来看下一篇!影片记得按赞订阅开小铃铛谢谢大家!
/images/emoticon/emoticon29.gif


<<:  [Day 23] SQL left / right join

>>:  Day 23 - 重覆呼叫shioaji.Shioaji()产生的记忆体问题

资安学习路上-picoCTF 解题(Reverse)2

4.speeds and feeds Google後发现CNC 的language是"G-...

Day21 测试写起乃 - Webmock

在写测试的时後,一定会有第三方服务或是会打向外部api的时候,如果不想让他真的去打外部api怕速度过...

[day8]FASTAPI建置示范-进度落後了!!

FASTAPI建置 非常快速的简介 过去讲到PYTHON建置API,大多会想到Flask以及Djan...

开个六给他,让他赢庄家一百块 - 根据五档报价之期货买卖

原本想要实作根据五档挂买卖下单,发现 snapshots 没有五档买卖价格 假如我今天就是想挂某一档...

Day 22 | Livewire 实作 购物网站(一): 建立商品列表

今天来做第二个实作:购物网站。这也是很容易遇到的专案类型,照原本的做法做一个购物网站都要花费大量的时...