📜  参数 (1)

📅  最后修改于: 2023-12-03 15:07:22.605000             🧑  作者: Mango

参数介绍

在编程中,参数是指一些变量或者数值,用来在程序之间传递信息。参数在函数调用中扮演重要的角色,能够传递数据和控制信息,发挥着极为重要的作用。

函数中的参数

函数的参数分为形式参数和实际参数。形式参数也称为函数的局部变量,是函数定义时声明的变量。实际参数是在调用函数时传递给函数的变量或常量。

形式参数

形式参数在函数定义时说明,它们只存在于函数内部,函数执行结束后即被销毁。形式参数的类型和数量可以任意指定,但是它们的作用域只局限于函数内部。

在函数调用时,实参会被复制到形参中,这样在函数内部就能够访问到实参的值。

下面是一个简单的例子:

def add(x, y):
    return x + y

result = add(2, 3)
print(result) # 输出 5

这里的 add 函数有两个形式参数 xy, 在调用时传递给函数的实参为 23。在函数中, xy 存储了传递进来的实参的值,函数执行后返回它们的和。

实际参数

实际参数是在调用函数时传递给函数的变量或常量。实参可以是常量、变量、表达式或函数等。

实参可以是按位置传递(位置参数)或按名字传递(关键字参数)。位置参数的顺序必须和形参的顺序一致,而关键字参数则不必遵循顺序。

下面是使用关键字参数调用函数 add 的例子:

result = add(x=2, y=3)
print(result) # 输出 5

这里我们传递了 x=2y=3 两个关键字参数,使得函数能够正确地执行。

Shell 脚本中的参数

在 Shell 脚本中,我们同样可以使用参数。

位置参数

Shell 脚本中的参数使用 $n 来表示,其中 n 是一个数字,表示参数的位置。例如,$0 表示脚本的名称, $1 表示第一个参数, $2 表示第二个参数,以此类推。

下面是一个简单的例子:

#!/bin/bash
echo "My name is $0"
echo "The first parameter is $1"
echo "The second parameter is $2"

如果我们将这个脚本保存为 test.sh 并执行:

./test.sh Alice Bob

它会输出:

My name is ./test.sh
The first parameter is Alice
The second parameter is Bob
命名参数

在 Shell 脚本中,我们同样可以使用命名参数,使用方法如下:

#!/bin/bash

while getopts "a:b:" option; do
  case "${option}" in
    a)
      a=${OPTARG}
      ;;
    b)
      b=${OPTARG}
      ;;
    *)
      echo "Invalid option: ${option}" >&2
      exit 1
      ;;
  esac
done

echo "a: ${a}"
echo "b: ${b}"

在这个例子中,我们使用了 getopts 命令来读取命令行参数,并用 case 语句处理不同的命令行选项。然后我们打印了 ab 两个变量的值。

如果我们调用这个脚本:

./test.sh -a Alice -b Bob

它会输出:

a: Alice
b: Bob
总结

不管是在函数中还是在 Shell 脚本中,参数都扮演着非常重要的角色。熟练地掌握如何使用参数,将有助于我们编写出更加高效的程序。