一、合约的定义

在 Solidity 中,合约类似于面向对象编程语言中的类,他是solidity的核心概念。 继续上一章的例子,丰富一些内容。


pragma solidity ^0.4.0;

import "remix_tests.sol"; // this import is automatically injected by Remix.

contract Calculator {
	uint public seed = 0;
	
	constructor() public {
		seed = block.timestamp; 
	}
	function random() public  returns(uint p) {
		uint next = seed * 1103515245 ;
		next +=12345;
		next = (next/65535)%2048;
		seed = next;
		return seed;
	}
    function multiply(uint a, uint b) public pure returns(uint c)   { 
        return a * b;         
    } 
}

这个例子很简单, 但所有的合约代码都是这种结构。 分为三部分:

  1. pragma 预编译选项申明,定义支持的浏览器版本。
  2. import 导入文件。将合约的实现按照某种逻辑来拆分,放到多个文件中,通过import来引入所依赖的其他文件。
  3. contract 合约定义,这是文件的主体内容了。

二、名称

Solidity 中函数、变量、常量、类型和包的名称都遵循一个简单的原则:名称以字符(Unicode字符即可)或者下划线开始,后面可以跟任意数量的字符、数字和下划线,并且是区分大小写的。

Solidity中有如下18个关键字,是不能用作名称:

abstract, after, case, catch, default, final, in, inline, let, match, null, of, relocatable, static, switch, try, type, typeof

另外还有一些内置的常量、类型和函数:

这些名称并不是预留的,可以在声明中使用它们,有些地方还可以覆盖重新声明,但这容易引起冲突。 在命名风格上, 一般采用类似java的驼峰规则,而不是下划线连接。


感谢您对本文的关注,如果您对区块链技术有兴趣,可以加入我们一起探讨, 请扫码关注“可可链”的微信公众号,并留言“加入可可链”。

本文欢迎转载,转载时请注明本文来自 微信公众号“可可链”。