次は、Mystic#の新しい構文および拡張された構文の一部を紹介します。
・例外処理 update!
従来にもTry-Catch-Finallyは使用できましたが、Mystic#では
例外オブジェクトの受け取りが可能となりました。
また、Catch句に限ってインライン型宣言ができます。
・行の継続 new!!
従来は行は継続できませんでした。そのため、1行で非常に長いコードを記述するなど
可読性が落ちていました。Mystic#では、VisualBasicのように
_ (アンダースコア、アンダーバー)を使用することで行の継続を行うことができます。
行の継続が正常に動作しています。
・ヒアドキュメント new!!
従来は文字列も行の継続はできませんでした。
Mystic#は、""(ダブルクォーテーション)記号で括られる全ての文字及び改行が
文字列として扱われます(エスケープシーケンスは従来通り適用されます)
また、文字列の先頭に $ 記号を付加することで、インデントを無視した
ヒアドキュメントを記述できます。
・例外処理 update!
従来にもTry-Catch-Finallyは使用できましたが、Mystic#では
例外オブジェクトの受け取りが可能となりました。
#program [Sample]
#method [Main, String, *~Main, Integer] As Global
*~Main
Var Integer [a, b, c]
Var Exception [ex]
Try
a = 4
b = 0
c = a b //ここで0除算例外が発生
Catch [ex]
Console.WriteLine [ex.Message]
Finally
Console.WriteLine [c]
Console.ReadKey [True]
End Try
MethodReturn
#method [Main, String, *~Main, Integer] As Global
*~Main
Var Integer [a, b, c]
Var Exception [ex]
Try
a = 4
b = 0
c = a b //ここで0除算例外が発生
Catch [ex]
Console.WriteLine [ex.Message]
Finally
Console.WriteLine [c]
Console.ReadKey [True]
End Try
MethodReturn
また、Catch句に限ってインライン型宣言ができます。
#program [Sample]
#method [Main, String, *~Main, Integer] As Global
*~Main
Var Integer [a, b, c]
Try
a = 4
b = 0
c = a b //ここで0除算例外が発生
Catch [Exception ex]
Console.WriteLine [ex.Message]
Finally
Console.WriteLine [c]
Console.ReadKey [True]
End Try
MethodReturn
#method [Main, String, *~Main, Integer] As Global
*~Main
Var Integer [a, b, c]
Try
a = 4
b = 0
c = a b //ここで0除算例外が発生
Catch [Exception ex]
Console.WriteLine [ex.Message]
Finally
Console.WriteLine [c]
Console.ReadKey [True]
End Try
MethodReturn
・行の継続 new!!
従来は行は継続できませんでした。そのため、1行で非常に長いコードを記述するなど
可読性が落ちていました。Mystic#では、VisualBasicのように
_ (アンダースコア、アンダーバー)を使用することで行の継続を行うことができます。
#program [Sample]
#method [Main, String, *~Main, Integer] As Global
#method [Test, String, String, String, *~Test] As Local
*~Main
Test ["これは", _
"テスト", _
"です。"]
Console.ReadKey [True]
MethodReturn
*~Test
Console.WriteLine ["{0}{1}{2}", _
Argument0, _
Argument1, _
Argument2]
MethodReturn
#method [Main, String, *~Main, Integer] As Global
#method [Test, String, String, String, *~Test] As Local
*~Main
Test ["これは", _
"テスト", _
"です。"]
Console.ReadKey [True]
MethodReturn
*~Test
Console.WriteLine ["{0}{1}{2}", _
Argument0, _
Argument1, _
Argument2]
MethodReturn
行の継続が正常に動作しています。
・ヒアドキュメント new!!
従来は文字列も行の継続はできませんでした。
Mystic#は、""(ダブルクォーテーション)記号で括られる全ての文字及び改行が
文字列として扱われます(エスケープシーケンスは従来通り適用されます)
また、文字列の先頭に $ 記号を付加することで、インデントを無視した
ヒアドキュメントを記述できます。
#program [Sample]
#method [Main, String, *~Main, Integer] As Global
*~Main
Console.WriteLine [ _
"あいうえお
かきくけこ
さしすせそ"]
Console.WriteLine [ _
$"あいうえお
かきくけこ
さしすせそ"]
Console.ReadKey [True]
MethodReturn
#method [Main, String, *~Main, Integer] As Global
*~Main
Console.WriteLine [ _
"あいうえお
かきくけこ
さしすせそ"]
Console.WriteLine [ _
$"あいうえお
かきくけこ
さしすせそ"]
Console.ReadKey [True]
MethodReturn