之前我们定义 log 函数的时候,给它设置的参数是带顺序的参数,也就是在执行这个函数的时候,要按顺序提供它的参数的值,比如这里第一个参数是给 message 准备的值,第二个参数是给 prefix 准备的值。
我们也可以在定义函数的时候使用有名字的参数,这样在执行函数提供参数值的时候,可以不用考虑参数的顺序,要使用参数的名字设置参数的值。
注释掉这个 log 函数,复制一份,再改造一下。
设置有名字的参数,可以把函数的参数放在一组大括号里。这样 log 函数就支持两个带名字的参数,一个是 message,一个是 prefix。
这里编辑器提示了一个错误,The parameter 'message' can't have a value of 'null' because of its type。
意思就是,message 这个参数的值不能是 null,因为我们把它的类型设置成了 String,所以它的值就不能是 null。 如果想要允许这个参数值可以是 null,我们可以在这个参数类型的后面加上一个 ? 号。
这样如果执行这个函数,不提供 message 参数的值,它的值就会是 null。
或者如果我们规定使用 log 函数的时候必须要提供 message 参数的值,可以用 required 修饰符修饰一下,把这个 required 放在参数类型的前面。
后面这个 prefix 参数允许它的值是 null,在类型的后面加上一个 ? 号。
现在执行 log 函数设置参数值的时候要写清楚参数的名字,比如 message ,后面是冒号,冒号的右边是参数的值。然后是 prefix 这个参数。
因为 log 函数支持的是有名字的参数,所以设置参数值的时候,这个参数的顺序就不重要了,比如我们可以把这个 prefix 参数放在前面。
再设置一下,下面这个 log 函数的参数值,一个是 message,还有一个参数叫 prefix。 运行一下应用,输出的结果跟之前是一样的。