標準ライブラリ
ここでは、VCSSLの標準ライブラリの中から、よく使うものについて説明します。 なお、GUI、Graphics2D、Graphics3D ライブラリについては、規模が大きいためここでは扱いません。別途のガイドをご参照ください ( GUIはこちら、Graphics2Dはこちら、Graphics3Dはこちらです。 )。
スポンサーリンク
標準ライブラリとは
標準ライブラリとは、あらかじめ用意されていて、標準で使用できるライブラリの事です。
通常、ライブラリを使用するためには、 ユーザーがライブラリを入手し、起動モジュールと同じフォ ルダ(ディレクトリ)内や、 処理系指定のフォルダ内に配置するなどの準備を行う必要があります。 し かし標準ライブラリでは、このような準備は不要で、いつでもすぐに使用できます。
標準ライブラリの役割
標準ライブラリの役割は、現実的なプログラムを開発する上で、 よく必要とされるような、基本的な機能を提供する事です。
そのような機能を、全てのユーザーが一から自力で作成しなければいけないのは不便ですし、 他人の書いたプログラムを読む際にも、何から何まで人によって全く異なるというのは読み辛くなってしまいます。 従って、そういった機能は標準ライブラリとしてあらかじめ用意されているわけです。
また、グラフィクスや GUI(グラフィカルユーザーインターフェイス)、 オペレーティングシステムや処理系側で処理する必要があるような機能も、 標準ライブラリとして提供されます。
print などのシステム関数も、「 System 」標準ライブラリで提供されている
実はこれまでのプログラムでも、標準ライブラリの機能を使用していました。 それは、画面にメセ ージを表示する print 関数などのシステム関数です。 システム関数は、「 System 」という標準ライブラリによって提供されています。 試しに以下のように記述し、実行してみてください:
これを実行すると、VCSSLコンソールに 「 Hello, World ! 」 と表示されます。 この通り、print 関数がSystemライブラリによって提供されている事が分かります。
VCSSLでは、全てのモジュール を読み込む前に、System ライブラリが自動で読み込まれる決まりになっています。 そのため、 System ライブラリをインポートしなくても、print 関数などを呼び出す事ができたわけです。
System 以外の標準ライブラリは、明示的にインポートして使用
インポートすらも不要で使用できるのは、標準ライブラリの中でも System だけです。 System ライブラリは、あまりに基本的な機能を提供し、ほとんどの全ての場面においてインポートする必要が生じるため、 特例的にインポートしなくても使用できるようになっているのです。
System 以外の標準ライブラリは、普通のライブラリと同様、インポートしてから使用する必要があります。 これは、使用するライブラリが多いほど、解釈すべき内容が増え、起動に時間がかかって しまうためです。 また、関数名の競合などの面倒を避けるためでもあります。
ライブラリは基本的に、 そのモジュールで使用するものだけをインポートするのが、実行時でも開発時でも有利です。
標準ライブラリの一覧と詳細表示
VCSSL の各標準ライブラリに関する詳細情報は、下記 URL にて参照できます:
https://ja.vcssl.org/lib/
標準ライブラリの一覧は以下の通りです。
これらの中で、(System 以外で)恐らく最も頻繁に使用するのは Math, Text, File, Time ライブラリでしょう。 以下では、実際にそれらを扱ってみます。
Mathライブラリ
Math は、sin や cos など、基本的な数学関数・定数を提供するライブラリです。
https://ja.vcssl.org/lib/Math
実際に使用してみましょう。以下のように記述し、実行してみてください:
上のプログラムを実行すると、sin(π/2) の値である「 1.0 」が表示されます。 必要に応じて、 値を数百桁以上の精度で求めるvarfloat 型の関数も使用できます。
Textライブラリ
Text は、文字列の検索や置き換えなど、基本的なテキスト操作機能を提供するライブラリです。
https://ja.vcssl.org/lib/Text
実際に使用してみましょう。以下のように記述し、実行してみてください:
このように、文字列に対して基本的な操作を行う事ができます。
Fileライブラリ
File は、ファイルパスを取得したり、ファイル一覧を取得したりするなど、ファイルに関する情報を 提供するライブラリです。
https://ja.vcssl.org/lib/File
実際に使用してみましょう。以下のように記述し、実行してみてください:
上の通り、ファイルの場所を取得するなど、ファイルの基本的な情報を扱う事ができます。 なお、ファイルの指定では、「 / 」をフォルダ(ディレクトリ)の区切りとして使用できます。 また、「 . 」を相対パス基準フォルダ、「 .. 」を親フォルダとして使用できます。
Timeライブラリ
Time は、時間や日付などに関する機能を提供するライブラリです。
https://ja.vcssl.org/lib/Time
以下は時間を計測する例です:
上のプログラムを実行すると、「 時間を計っています... 」というメセージが表示されます。 メセ ージを閉じた時点で、閉じるまでに要した時間が、VCSSL コンソールに秒単位で表示されます。
上の例で使用した time 関数は、プログラムの実行が開始されてからの経過時間を返す関数です。 time 関数が返す時間の単位は、通常はミリ秒(1/1000 秒)ですが、厳密には処理系に依存します。 そのため、得られた結果を任意の単位に変換するための関数も提供されており、 上で用いた second 関数もその一つです。 単位の変換には、millisecond(ミリ秒単位)、second(秒単位)、 minute(分単位)、hour(時間単位)などがあります。
なお、second 関数や minute 関数、hour 関数などは、 引数を省略すると、時計における時刻を 返す機能もあります。 これを用いて、何時何分何秒かを取得する事ができます。 さらに、day で日付 を、month で月を、year で年を取得する事ができます:
上のプログラムを実行すると、その時点の日付と時刻が表示されます。
なお、month 関は、0 〜 11 では無く、 1 〜 12 までを返すと決まっています。つまり1月であれば 0 では無く 1 を返します。 Day 関数も同様で、(月の始めの)1日であれば 0 ではなく 1 を返します。 他言語では 0 から数えるものも存在するため、混同しないように注意が必要です。