0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kinx ライブラリ - Integer

Last updated at Posted at 2020-04-07

Integer

はじめに

「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」 でお届けしているスクリプト言語 Kinx。言語はライブラリが命。ということでライブラリの使い方編。

リポジトリ(https://github.com/Kray-G/kinx) のほうの説明を "Looks like JavaScript, feels like Ruby, and it is the script language fitting in C programmers." に変えてみた。意味的には例の名探偵のオマージュですが、英語の表現は違っていてオリジナルです。

今回は Integer です。

Integer オブジェクトに括り付いたメソッドは特殊メソッドで、整数値に直接作用させることができる。特殊メソッド、および特殊オブジェクトに関する詳細は Kinx ライブラリ - String を参照してください。

Integer 特殊オブジェクト

Integer オブジェクトに対して関数定義する例は以下の通り。

Integer.times100 = function(value) {
    return value * 100;
};
var val = 100.times100();
System.println(val);

実行してみよう。

10000

レシーバーが第 1 引数に来ます。

Integer

組み込み特殊メソッド

メソッド 意味
Integer.times(val, callback) i = 0 ~ (val - 1) の範囲として、callback があれば callback(i) の結果で、無ければ i で配列を作成して返す。
Integer.upto(val, max, callback) i = val ~ max の範囲で引数として callback(i) を呼ぶ。
Integer.downto(val, min, callback) i = min ~ val の範囲で引数として callback(i) を呼ぶ。
Integer.toString(val, base) val を文字列に変換する。base は 10 と 16 のみサポート。
Integer.toDouble(val) val を Double に変換する。

Math オブジェクト・メソッド

Integer オブジェクトには Math オブジェクトと同じ特殊メソッドが存在する。詳細は以下を参照。

具体例で書くと、例えば以下のように書ける。

var a = 2.pow(10);     // Math.pow(2, 10) と同じ  => 1024
var b = (-10).abs();   // Math.abs(-10)   と同じ  => 10

単項マイナス(-)は関数呼び出しより優先順位が低いため、カッコで括る必要があることに注意。

特殊オペレーター

単項 * オペレーター

単項 * オペレーターを整数値に適用した場合、文字コードに対応した文字列(1 文字)を返す。

var a = *97;  // => "a"

ちなみに逆変換(*a)は元に戻らない。文字列に対する単項 * オペレーターは配列になるため、上記例で *a とすると [97] と配列となることに注意。単独で文字コードを得るには、a[0] とする。

おわりに

Integer に特殊メソッドがあることでグッと Ruby っぽい感じがしてますが気のせいですかね。2.pow(10) とか書けるのが結構感慨深いなー。

ここ 見ながら、今サポートしてないメソッドとかサポートしてみようかなー、と。

ではまた次回。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?