この記事の目次
chevron_right
テンプレートファイルを使ってみる
chevron_right
テンプレートに引数を渡してみる
chevron_right
仕組み
chevron_right
参考
nim言語には、「Source Code Filter(以下、SCF)」というものが、デフォルトで存在します。
これは、メモリにコードを読み込んだときに、予め定義しておいた変数を外部から渡された値に置換し、
その結果を得ることが出来る機能です。
以下に例を示します。
テンプレートファイルを使ってみる
「test.tmpl」という名前で、以下のファイルを作成してください。
#? stdtmpl | standard
#proc tmpl_sample(): string =
# result = ""
This is sample text.
次に上でつくたファイルを実行するnimのコードを作成します。
名前はとりあえず「test.nim」とします。
# tmplファイルの読み込み
include "test.tmpl"
echo tmpl_sample()
test.nimを実行してみると、CUI上に「This is sample text.」という文字が表示されると思います。
> nim c -r test.nim
# This is sample text.
テンプレートに引数を渡してみる
test.tmplを書き換えてみます。
#? stdtmpl | standard
#proc tmpl_sample(arg1: string): string =
# result = ""
This is sample text.
You put "$arg1"!
2行目の「tmpl_sample
」プロシージャに引数を追加し、
「You put "$arg1"!
」を行末に追加しています。
更に、「test.nim」も更新します。
# tmplファイルの読み込み
include "test.tmpl"
echo tmpl_sample("hello!")
tmpl_sampleプロシージャに引数を渡しました。
実行してみましょう。
> nim c -r test.nim
# This is sample text.
# You put "hello!"!
正常に値が渡され、展開されたものが取得できていますね!
いい感じです。
仕組み
SCFは「#? stdtmpl | standard
」という句で利用ができるようになります。
デフォルトは「#
」で始まる行が、Nimのコードと認識されるようになります。
なのでtmplファイル内で、ifなども使うことができます。
#? stdtmpl | standard
#proc tmpl_sample(arg1: string): string =
# result = ""
This is sample text.
You put "$arg1"!
# if arg1 == "hello":
Hi!
# else:
Who are you?
参考
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。