Satuki sysytemを使う上での基本的な構文等です
変数xに値を代入 [<@x=100>]<br> <@> 代入した結果を出力する 変数yに値を代入 [<$y=200>]<br> <@> 代入した結果を出力しない. x = <@x><br> y = <@y><br> <@ifexec(1, begin)> ここは表示される <$end> <$ifexec(1, begin)> ここは表示されない <$end>
↓<br> <@> この部分はコメントになる<br> ↑<br> 行の途中であっても <@> この部分はコメントになります<br>
変数に値を入れます.値の代入は = で行います.
<$x = 100><$y = 200> x = <@x>, y = <@y>
配列を作成するときに利用します.値は#を利用することで取り出すことができます.
<$a = array(100, 200)>
<@a#0>, <@a#1>
連想配列(ハッシュ)を作成するときに利用します.値は.を利用することで取り出すことができます.
<$h = begin_hash>
x = 100
y = 200
<$end>
<@h.x>, <@h.y>
処理を分岐させるときに利用します.
absolute(<@x=-10>) = <@if(x<0, -1*x, x)><br> <@if(Now.mon == 1 && Now.day == 1, "あけましておめでとう<br>")> <@if(Now.hour < 12, "AM", "PM")> <@Now.hour>:<@Now.min><br>
処理を分岐させるときに利用します.ifとは違いブロックを実行します.
ifでできることはifexecでもすることもできます.
ブロックはbegin, endで指定します.この2つは必ず1対1で対応します. ネストが複雑になった場合などは,.を利用しブロックに名前を付けることもできます. ただし,この名前はソースを分かりやすくするために付けるものなので,指定した名前のブロックを抜けるといった使い方はできません. ですが,1対1の対応関係が間違えている場合にはエラーが出るため,不安な場所には付ける方がいいかもしれません.
absolute(<@x=-10>) = <@ifexec(x < 0, begin, begin)><@-1*x><$end><@x><$end><br> <@ifexec(Now.mon == 1 && Now.day == 1, begin)> あけましておめでとう<br> <$end> <br> <@ifexec(Now.hour < 12, begin, begin)> AM <$end> PM <$end> <@Now.hour>:<@Now.min><br> Good <@ifexec(Now.hour < 12, begin.am, begin.pm)> <@> ブロックにそれぞれAM, PMの名前を付けておく. morning <$end.am> <@ifexec(Now.hour < 18, begin, begin)> <@> ネストすることもできます. afternoon <$end> evening <$end> <$end.pm>.
配列の処理など,繰り返しを行いたいときに利用します.
<$x = array('a', 'b', 'c')>
<@forexec(t, x, begin)>
<@t><br>
<$end>
<$undef(t)>
指定した回数だけ繰り返しを行いたいときに利用します.
<@forexec_num(t, 3, begin)>
<@t><br>
<$end>
<$undef(t)>
連想配列を処理する点を除き,forexecと同じです.
<@forexec_hash(t, Now, begin)>
<@t.key> = <@t.val><br>
<$end>
<$undef(t)>
システムの持つメソッドを呼び出す場合はそのまま呼び出します.
<@undef(t)> <@> undefというメソッドを引数tを渡して呼び出している.
システムの持つメソッドを呼び出す場合は変数vを通して呼び出します.
vは自作モジュールを指す変数です.これはconfファイルにおいてメインクラスをロードした時点で作成されます.
<@v.add(10, 20)><br> <@v.greeting()><br> <@v.version()>
システム変数など,定義しなくても利用できる変数です.
変数vはロードされているメインオブジェクトを指す変数です.
Value | Source | |
---|---|---|
メインオブジェクト | Satsuki::intro=HASH(0x8249934) | <@v> |
Satsuki systemのversion | 1.22 | <@VERSION> |
サーバのURL | http://127.0.0.1 | <@Server_url> |
cgi本体 | /intro.cgi | <@Myself> |
現在時刻 | 2008/06/20 20:24:29 | <@Timestamp> |
月 | 06 | <@Now.mon> |
日 | 20 | <@Now.day> |
時 | 20 | <@Now.hour> |
分 | 24 | <@Now.min> |