有没有办法在另一个函数规范中引用函数的返回类型规范?
defmodule Car do
@spec beep(none()) :: String.t
def beep do
"beep"
end
@spec beep_log(none()) :: String.t
def beep_log do
IO.puts "beep log"
beep
end
end
beep_log的规范是否可以用以下内容指定:
@spec beep_log(none()) :: beep()
答案 0 :(得分:6)
如果没有定义两个函数都将返回的新数据类型,则无法做到这一点。您可以在docs for the GenServer
module中查看此模式的示例,其中start/3
类型由start_link/3
和defmodule Car do
@type beep_return() :: String.t
@spec beep(none()) :: beep_return()
def beep do
"beep"
end
@spec beep_log(none()) :: beep_return()
def beep_log do
IO.puts "beep log"
beep
end
end
定义并共享。
在你的情况下,这样的事情会起作用:
itertools.islice()