Solidity学习第二节 Hello World

从易到难来学习Solidity

目录顺序

1.Hello World

2. 程序理解

  • 一:Hello World

学习编程的小伙伴们大家都知道,当接触一门新的语言时运行的第一个运行的实例是Hello World ,下面让我们Coding

pragma solidity ^0.4.17;
//定义合约helloworld
contract helloworld {
    string greeting; //定义字符串变量
    function helloworld(string _greeting) public {
        greeting = _greeting;
    }
    function say() constant public returns (string) {
        return greeting;
    }
}
1.代码理解
pragma solidity ^0.4.17;

1> :上述代码就是告诉大家源代码使用Solidity版本0.4.17写的
2>: 关键字 pragma 的含义是,一般来说,pragmas(编译指令)是告知编译器如何处理源代码的指令的。其中pragma 是 pragmatic information 的简称,微软 Visual C++ 中译为杂注。 Solidity 中沿用 C ,C++ 等中的编译指令概念,用于告知编译器 如何 编译。
3>:0.4.17代表的是Solidity编译器的版本号

contract helloworld {
  ******
}

1>: 上述代码理解的是定于一个合约,合约名为helloworld ,使用contract来修饰,相当于PHP语言中的类(Class)。
2>:Solidity中的智能合约和传统面向对象语言中的类很相似,因此有构造函数,有继承,有变量

string greeting

1>:上述代码告诉的是定义状态变量,状态类型为string,状态变量名为greeting
2>: 状态变量是永久地存储在合约存储中的值(具体详细用法会在后续学习章节中体现)。

function helloworld(string _greeting) public {
    greeting = _greeting;
}

1>:上述代码告诉的是构造函数,创建合约时,会执行一次构造函数(与合约同名的函数)
2>:构造函数是可选的。只允许有一个构造函数,代表构造函数不支持重载

function say() constant public returns (string) {
    return greeting;
}

1>:以上代码是其他业务逻辑的处理操作
2>:constant修饰的函数不应该修改状态(尚未完全强制执行)
3>:constant修饰的变量(类中的变量而不是方法)每次调用时都会被重新计算
4>:常函数(Constant Functions):函数也可被声明为常量,这类函数将承诺自己不修改区块链上任何状态

二:参考文档

  1. Solidity中文文档
  2. 区块链技术博客
  3. 欧阳小哥哥

你可能感兴趣的:(Solidity学习第二节 Hello World)