函数1
上一节
下一节
函数的定义
Solidity中, 定义函数的语法如下:
function function-name(parameter-list) scope returns() {
//语句
}
复制代码函数由关键字 function 声明,后面跟函数名、参数、可见性、返回值的定义。但不是每一个函数都需要这些定义。
下面的例子,定义一个函数内部为空,名为 testResult 的函数,该函数接受两个参数:一个 string 类型的和一个 uint 类型的。
function testResult(string _name, uint _score) {
}习惯上函里的变量都是以 "_" 开头 (但不是硬性规定) 以区别全局变量。我们整个教程都会沿用这个习惯。
我们的函数使用如下:
testResult("Jason", 95);私有/公共函数
Solidity 定义的函数的属性默认为公共。 这就意味着任何一方 (或其它合约) 都可以调用你合约里的函数。
显然,不是什么时候都需要这样,而且这样的合约易于受到攻击。 所以将自己的函数定义为私有是一个好的编程习惯,只有当你需要外部世界调用它时才将它设置为公共。
function _testResult(string _name, uint _score) private {
}可以看到,在函数名字后面使用关键字 private 即可。和函数的参数类似,私有函数的名字用 "_" 起始(注:这只是一种管用的命名方法,推荐但不强求按照这种规则命名)。
实战演习
在我们的APP里,我们要能孵化宠物,同时要避免任何人都可以去创建宠物。让我们来写一个私有函数。
建立一个函数内部为空且接受两个参数的私有函数
_createPet, 它的两个参数分别是:_name(类型为string), 和_dna(类型为uint)。


