再帰的なインデントを行うコード行を書きたいと思っています。グローバルタブ変数を使用してそれを行う方法を調査しています。そこで、次のコードを使用しました。
@@tab = ' '
@@tab_add = ' '
@@nl = "\n"
def helper
left = @@tab
right = @@tab
@@tab = @@tab + @@tab_add
str = '<hello>' + @@nl + left + helper2 + right + @@nl + '</hello>'
end
def helper2
left = @@tab
right = @@tab
@@tab = @@tab + @@tab_add
str = '<goodbye>' + @@nl + left + helper3 + right + @@nl + '</goodbye>'
end
def helper3
str = 'dawg'
end
私はそれを行う最もエレガントな方法ではないことを知っていますが、私はただ実験しています. とにかく、私がタイプするとき
helper
私は得る
<hello>
<goodbye>
dawg
</goodbye>
</hello>
しかし、さようならの終了タグもインデントされていないのはなぜですか? 「ヘルパー」関数の「正しい」ローカル変数として保存しました。助けてくれてありがとう!