@eval
マクロで定義された関数にドキュメントストリングを関連付けようとしています。また、シンボルを使ってドキュメントストリングを動的に生成したいと思っています。@evalを使用してdocstring内でメタプログラミングする
for (f, name) in ((:add, :addition), ...)
@eval begin
@doc "Documentation for $name" ->
function f(args)
## FUNCTION BODY
end
end
end
私は成功し@eval
ステートメント内から$name
を参照することができますが、私はドキュメンテーション文字列自体から$name
を参照することはできません。エラーUndefVarError: name not defined
が返されます。
1)これを動作させる方法はありますか?私は@doc
スコープから抜け出し、周囲のスコープの変数にアクセスするためにいくつかの方法を試しましたが、成功しませんでした。
2)->
構文の性質は何ですか?
私はGithubから->
という構文を得ましたが、Juliaのドキュメントでそれについては言及されていませんし、Juliaを使い慣れていても、私は前に遭遇しませんでした。
ようになるはずです(:追加、追加)、(:サブ、 "減算"))のためのジュリア0.5 'で) @eval begin @doc - ユーズ/ docstrings/julia-users/fuEQCbLULSk/e67MVJcWBAAJ – jverzani