コンテンツにスキップ

配列の要素数を取得

概要

YAYAで配列の要素数(サイズ)を取得する方法を説明します。

方法1: ARRAYSIZE関数(推奨)

最もシンプルな方法は組み込みのARRAYSIZE関数を使用することです。

i = ("A","B","C")
j = ARRAYSIZE(i)
// j == 3

方法2: ANY関数

文5にはANY関数があり、配列からランダムに1要素を取り出せます(要素数取得とは用途が異なりますが、配列操作の一種です)。

方法3: カスタム関数(dim_enum)

ユーザー投稿のカスタム関数で、文字列内のカンマ数をカウントすることで要素数を返します。

dim_enum {
    _s = _argv[0]
    _count = 1
    _i = 0
    for _i < STRLEN(_s) {
        if SUBSTR(_s, _i, 1) == "," {
            _count++
        }
        _i++
    }
    _count
}

ユーザーに覚えてもらった言葉をランダムに取り出す際の乱数範囲指定など、動的なサイズを扱う場面で役立ちます。

説明

通常はARRAYSIZE関数を使えば十分です。カスタム関数(dim_enum)は、カンマ区切り文字列を汎用配列に変換せずに要素数だけを知りたい場合に使えますが、SPLITで変換してからARRAYSIZEを使う方がシンプルです。

協力者: 沢渡みかげ、silky

関連項目

  • マニュアル/関数/ARRAYSIZE
  • Tips/簡易配列→汎用配列の変換
  • Tips/簡易配列からメニューを構築する