ethereum(以太坊)--值传递与引用传递

Posted eilinge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ethereum(以太坊)--值传递与引用传递相关的知识,希望对你有一定的参考价值。

pragma solidity ^0.4.0;

// priveta public internal

contract Test{
uint public _age;
function Test(uint age){ _age = age; } function f(){ modify(_age); } function modify(uint age){ age =100; } //function age() constant returns(uint){ // return _age; //} } contract Person{ string _name; function Person(string name){ _name = name; } function f(){ modify(_name); } function modify(string storage name) internal { //name = ‘eilinge‘; //memory:值传递__https://pan.baidu.com/s/1cPn4aoXKeYZzD2cG15s28A,storage+internal+bytes():
     //引用传递__https://pan.baidu.com/s/1TO-1iAutc317VWp5iTS11g
bytes(name)[0] = ‘L‘; } function name() constant returns(string){ return _name; } }
值类型(Value Type)
    布尔(bool)
    整型(integer)
    地址(address)
    定长字节数组(fixed byte arrays)
    有理数和整型(Rational and Integer,String literals)
    枚举类型(Enums)
    函数(Functions Types)

    值类型传递时,会临时拷贝一份内容出来,而不是拷贝指针,当你修改新的变量时,不会影响原来的变量的值 

引用类型(Reference Types)
    不定长字节数组(bytes)
    字符串(string)
    数组(Array)
    结构体(Struts)
    
    引用类型,赋值时,可以值传递,也可以引用(地址传递)
        值传递:      当你修改新的变量时,不会影响原来的变量的值 
        引用传递:    当你修改新变量时,原来变量的值会跟着变化,这是因为新/旧变量指向同一个地址的原因。

 



以上是关于ethereum(以太坊)--值传递与引用传递的主要内容,如果未能解决你的问题,请参考以下文章

ethereum(以太坊)(十四)--Delete

(转)写文章 以太坊(Ethereum)创世揭秘 以太坊(Ethereum)创世揭秘

区块链 | 智能合约Ethereum源代码- 以太坊RPC通信实例和原理代码分析(上)

[Ethereum] 以太坊中涉及到的数据结构与算法

[Ethereum] 以太坊中涉及到的数据结构与算法

[Ethereum] 以太坊中涉及到的数据结构与算法