3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語「なでしこ」Advent Calendar 2024

Day 11

「範囲オブジェクト」なでしこ2024年バージョンアップを振り返る

Last updated at Posted at 2024-12-10

なでしこ開発者のクジラ飛行机です。今年も、なでしこの開発をたくさん行いました。一年の振り返りに、新機能やバージョンアップのハイライトを紹介したいと思います。

個人的に良かった機能は?…範囲オブジェクト!

2024年に追加した機能の中でも、特にユニークなのが範囲オブジェクトです。これは、今後のなでしこに新たな一歩を残すユニークな機能追加です。

特定の範囲を表すオブジェクトを生成するのが、範囲オブジェクトの機能です。

どのように使うのかと言うと

  • 全角文字で「2…5」
  • 半角文字で「2...5」
  • 範囲関数を使って「2から5の範囲」

のように記述すると、範囲オブジェクトを生成するというだけの機能です。

これは、下記のプログラムをエディタで実行すると分かります。

3…5をJSONエンコードして表示
# → {"先頭":3,"末尾":5}

3から5の範囲をJSONエンコードして表示
# → {"先頭":3,"末尾":5}

なんと、先頭と末尾の二つの要素を持った辞書型データを生成するだけなんです。

範囲オブジェクト --- 何の役に立つの?

まずは、なでしこの「繰り返す」構文で、範囲オブジェクトを使えます。

3...5を繰り返す:
  表示。

なでしこ3の簡易エディタで実行すると次のようになります。

スクリーンショット 2024-11-13 16.12.11.png

範囲を利用する関数で役立つ

「乱数」関数も範囲オブジェクトに対応しています。次のように書くと、1から6の範囲のいずれかの整数を返します。

5回:
  (1…6の乱数)を表示。

上記を実行すると、次のようになります。

スクリーンショット 2024-11-13 16.21.21.png

範囲で配列の要素を参照する

次に、配列と範囲オブジェクトの組合せが便利です。「参照」関数を使えば配列の要素を参照できます。

A=[0,1,2,3,4,5,6,7,8,9]
Aの3…5を参照してJSONエンコードして表示
# → [3,4,5]

範囲で文字列の一部を参照する

同じような使い方ですが、文字列と範囲オブジェクトの組合せが便利です。「参照」関数を使えば文字列の一部を参照できます。

S=「0123456789」
Sの3…5を参照して表示
# → "345"

ぜひ自作関数でも活用してください

このように、範囲オブジェクトが利用できると、とても手軽に範囲を指定できます。

範囲オブジェクトは冒頭で見たように、単なる「{"先頭":3,"末尾":5}」のような辞書型データです。これを利用すれば、自作関数でも便利に使えることでしょう。活用してみてください!

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?