FC2ブログ

Lua 学習:文字列の連結を別の記号で

2017-12-15 :  PCクリニック
先日(2017-11-24)の記事「Python-like string formatting」で、

  getmetatable("").__mod = ・・・
関数を学習した。

これで、
  % (剰余) 演算子をオーバーライドすることができる。

他に何か出来ないか?・・・

+ (加算) 演算子 はどうか?
getmetatable("").__add = function( a, b )
return a .. b
end
と云ったもの。


本来の + (加算) 演算子 では、

数値+数値・・・数値の加算。
文字+数値・・・文字が数値を表すなら数値加算。で無ければエラー。
数値+文字・・・文字が数値を表すなら数値加算。で無ければエラー。
文字+文字・・・文字が数値を表すなら数値加算。で無ければエラー。


と成っているが、
上記の関数定義後は、


数値+数値・・・数値の加算。
文字+数値・・・文字が数値を表すなら数値加算。で無ければ文字列連結
数値+文字・・・文字が数値を表すなら数値加算。で無ければ文字列連結
文字+文字・・・文字が数値を表すなら数値加算。で無ければ文字列連結


となりますネ。



更に、他には?・・・

^ (ベキ) 演算子 はどうか?
getmetatable("").__pow = function( a, b )
return a .. b
end
と云ったもの。


本来の ^ (pow) 演算子 では、

数値^数値・・・本来のベキ演算。
文字^数値・・・文字が数値を表すならベキ演算。で無ければエラー。
数値^文字・・・文字が数値を表すならベキ演算。で無ければエラー。
文字^文字・・・文字が数値を表すならベキ演算。で無ければエラー。


と成っているが、
上記の関数定義後は、


数値^数値・・・数値のベキ演算。
文字^数値・・・文字が数値を表すならベキ演算。で無ければ文字列連結
数値^文字・・・文字が数値を表すならベキ演算。で無ければ文字列連結
文字^文字・・・文字が数値を表すならベキ演算。で無ければ文字列連結


となりますネ。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171105,11
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
06 | 2021/07 | 08
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク