类型声明
我们还能对函数参数施加的另一种控制是限定这些参数的类型。我们可以为每个变量指定数据类型,就像在上一章中为元组所做的一样。如果传入函数的实参类型与定义函数时指定的类型不匹配,就会抛出错误。
这也是控制函数并避免不必要异常的一种方式。在当前版本的 my_profit 函数中,您现在可以向每个参数传入字符串,但在返回语句尝试用一个字符串减去另一个字符串时会报错。我们可以通过为每个参数定义数据类型来防止这种情况。
在下面的示例中,请为函数中的每个参数设置数据类型。
请注意,如果我们尝试传入与已定义类型不匹配的数据类型,将会得到如下错误:
MethodError: no method matching my_profit(::Int64, ::Int64)
本练习是课程的一部分
Julia 中级
练习说明
- 为每个参数设置数据类型,其中
current_price和previous_price应为Float64值,fees只能是Int64值。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Define my_profit with three type-restricted arguments
function my_profit(previous_price____, current_price____, fees____=2)
return current_price - previous_price - fees
end
# Call my_profit, passing in values of the correct data type
my_profit(100.00, 105.00)