Address型別和Mapping 型別

2021-08-06 03:18:41 字數 1438 閱讀 8350

address型別被廣泛的用在以太坊的合約**中,也是智慧型合約和一般**最大的不同

一般來說有這些用法

1.address a = msg.sender

//誰呼叫合約

2.address b = this              

//當前合約的位址

address型別的方法:

1.balance

2.transfer

定義方式主要常見的有

**示例一:

pragma solidity 0.4.10;

contract demo

step 2: 新增乙個建構函式

pragma solidity 0.4.10;

contract demo}

step 3: 新增乙個方法 add()

function add(bytes32 usr,uintamount)

step 4: 新增乙個 update()

function update(bytes32 usr,uint amount)

step 5: 新增乙個 del()

function del(bytes32 usr)

示例2:

撰寫乙個簡單的合約

pragma solidity 0.4.7;

contract coin

這裡我們定義了乙個address 作為key, uint做為value的hashtable balances; 我們還定義了乙個address的變數minter;

function coin()
這裡的**minter = msg.sender; 代表建立這個合約的賬戶位址,被賦值給變數minter.

這裡的核心**在於,如果呼叫這個方法的賬戶,不是minter, 也就是建立合約的賬戶的話,這個mint()將無法被執行。 只有是建立合約的賬戶,也就是minter才可以執行它

這個非常簡單的轉移貨幣的**,也就是說msg.sender減少一定代幣,接受者receiver增加一定代幣

完整**如下:

pragma solidity 0.4.7;

contract coin

function mint(address receiver, uint amount)

function send(address receiver, uint amount)

}

命名型別和未命名型別和基礎型別

命名型別 乙個命名型別一定跟其他型別不同.哪些是命名型別 1.預先宣告的型別,如int int8 boo float32.2.使用type宣告的型別,類似起別名,如type aint int var i int named type type myint int named type var b b...

引用型別和值型別

c 是一種型別安全的語言。每乙個變數都要求定義為乙個特定的型別,並且要求儲存在變數中的值只能是這種型別的值。變數既能儲存值型別,也可以儲存引用型別,還可以是指標。這一課將講述前兩種型別,關於指標的討論我們將在下一課中進行。下面是關於值型別和引用型別不同點的概論 如果乙個變數v儲存的是值型別,則它直接...

引用型別和值型別

c 中值型別和引用型別作為方法引數傳遞的時候其實都可以說是 值 的傳遞,只不過這裡的 值 指代的東西有所區別。當方法的引數為值型別時,方法傳遞的是值本身的值。當方法的引數為引用型別時,方法傳遞的則是應用型別的引用的位址,也就是引用型別位址在棧上的值。舉個引用型別作為引數傳遞的例子 static vo...