1. 主页
  2. 文档
  3. 学习君土脚本
  4. 创建君土脚本代码块
  5. 函数返回值

函数返回值

函数返回值-是本章中最后一个基础概念,让我们一起来瞧瞧.。有些函数在执行完毕后不会返回一个有用的值,但有些会, 重要的是理解返回的是什么,怎样使用这些值在你的代码中,我们将在下面讨论这些。

什么是返回值?

返回值意如其名,是指函数执行完毕后返回的值。你已经多次遇见过返回值,尽管你可能没有明确的考虑过他们。让我们一起回看一些熟悉的代码:

定 字符串0 = '这是一个字符串';
定 新字符串 = 字符串0.替换('字符串', '函数');
控制台.日志(新字符串); // 输出 '这是一个函数'
// 替换()函数接受一个字符串,
// 将一个子字符串替换为另一个子字符串,并返回
// 一个新的字符串

在第一篇函数文章中,我们确切地看到了这一块代码。我们对 字符串0 字符串调用 替换() 功能,并通过这两个参数的字符串查找,和子串替换它。当这个函数完成(完成运行)后,它返回一个值,这个值是一个新的字符串,它具有替换的功能。在上面的代码中,我们保存这个返回值,以作为新字符串变量的内容。

如果你看看替换功能君土参考页面,你会看到一个返回值。知道和理解函数返回的值是非常有用的,因此我们尽可能地包含这些信息。

一些函数没有返回值就像(在我们的参考页中,返回值在这种情况下被列出为空值 无/*void*/ 或未定义值 灭/*undefined*/ )。例如,我们在前面文章中创建的 问候() 函数 , 由于调用的函数的结果,没有返回特定的值。它只是在控制台显示一段提示——就是这样!

通常,返回值是用在函数在计算某种中间步骤。你想得到最终结果,其中包含一些值。那些值需要通过一个函数计算得到,然后返回结果可用于计算的下一个阶段。

在自定义的函数中使用返回值

要从自定义函数返回值,需要使用回/*return*/关键字。我们最近在打印星号示例中看到了这一点。 我们的 绘制星号() 函数打印10行随机星号数:

  务 随机数(最大: 数): 数 {
    回 算.顶(算.随机() * 最大)
  }

  务 绘制星号() {
    常 打印行数 = 10;
    常 每行最多星数 = 15;
    为 (定 甲 = 0; 甲 < 打印行数; 甲++) {
      定 星数 = 随机数(每行最多星数);
      为 (定 乙 = 0; 乙 < 星数; 乙++) {
        进程.输出.写('*');
      }
      进程.输出.写("\n");
    }
  }

  绘制星号();

在每个循环迭代,随机数()函数调用,生成当前要打印的星号数。随机数()函数接受一个参数-一个整数,返回0到这个整数之间的随机数。看起来像这样:

  务 随机数(最大: 数): 数 {
    回 算.顶(算.随机() * 最大);
  }

这也可以写成下面这样:

  务 随机数(最大: 数): 数 {
     定 结果 = 算.顶(算.随机() * 最大);
     回 结果;
  }

但是第一个版本写得更快,而且更紧凑。

我们每次调用函数都返回算.顶(算.随机() * 最大)计算的数学结果。这个返回值出现在调用函数的位置上,并且代码继续。例如,如果我们运行下面的行:

控制台.日志(随机数(1000) + 随机数(500)+ 随机数(50));

这三次随机数()调用分别返回值600, 200和35,实际上这一行这样运行:

控制台.日志(600 + 200 + 35);

在运行该行之前,首先运行该行上的函数调用,并用其返回值替换该函数调用。

主动学习:我们自己的返回值函数

让我们着手编写具有我们自己的返回值的函数。

  1. 让我们添加一些有用的函数。添加以下函数定义:
务 平方(数0: 数) {
  回 数0 * 数0;
}
务 立方(数0: 数) {
  回 数0 * 数0 * 数0;
}
务 阶乘(数0: 数) {
  定 甲 = 数0;
  复 (甲 > 1) {
    数0 *= 甲 - 1;
    甲--;
  }
  回 数0;
}

平方() 和 立方() 功能是相当明显的-他们的平方或立方的数作为一个参数返回。阶乘()函数返回给定数字的阶乘。

  1. 接下来,我们增加一个显示数的信息的函数。在现有函数下面输入以下程序:
务 计算(数0: 化) {
  若 (是非数(数0)) {
    控制台.日志('需要提供数字!');
  } 别 {
    控制台.日志(数0 + '的平方是' + 平方(数0) + '. ' +
      数0 + '的立方是' + 立方(数0) + '. ' +
      数0 + '的阶乘是' + 阶乘(数0) + '.');
  }
}

计算('你好');
计算('8');
计算(1);
计算(6);
计算(20);

这里我们创建一个计算函数。接下来,我们进行条件测试——如果输入的值不是数字,则打印错误消息。语句判断是非数(数0)表达式是否返回。我们用是非数()函数测试数0的值是否不是一个数字-如果不是数字,就返回,否则返回。如果测试返回,则数值是一个数字,所以我们打印出一个句子,说明数字的平方、立方体和阶乘是什么。这句话调用平方()立方(),和阶乘()函数来获得所需的值。

在这一点上,我们希望您编写一个自己的几个函数,并将它们添加到库中。这个数的平方根或立方根,或一个圆的周长和半径是多少?

这个练习提出了一些重要的观点,除了研究如何使用返回语句之外, 我们还有:

  • 看看另一个将错误处理写入函数的例子。通常,最好检查是否验证了任何必要的参数,以及是否提供了任何可选参数的某种默认值。这样,您的程序就不太可能抛出错误。
  • 考虑一下创建函数库的想法。随着你的编程生涯的深入,你会开始一遍又一遍地做同样的事情。创建自己的实用函数库来做这些事情是一个好主意。您可以将它们复制到新代码中,或者仅仅将其应用到任何需要的应用中。

结论

函数很有趣,也很有用,虽然关于它们的语法和功能有很多需要讨论的,但是它们是很容易理解的。

如果您有什么不明白的地方,可以再通读一遍,或者联系我们寻求帮助。