// ANY Helpers Demo - 型を問わない統一的な操作 // ANYヘルパーは Array, String, Map すべてに対応する万能メソッド! static box Main { main() { local console console = new ConsoleBox() console.log("=== ANY Helpers Demo ===") console.log("") // 1. length() - どんなBoxでも長さ/サイズを取得 console.log("1) length() helper:") local arr arr = new ArrayBox() arr.push("cat") arr.push("dog") console.log("Array length: " + arr.length()) // 2 local str str = new StringBox("Hello") console.log("String length: " + str.length()) // 5 local map map = new MapBox() map.set("name", "Nyash") map.set("version", "1.0") console.log("Map size: " + map.length()) // 2 console.log("") // 2. isEmpty() - どんなBoxでも空かチェック console.log("2) isEmpty() helper:") local emptyArr emptyArr = new ArrayBox() console.log("Empty array: " + emptyArr.isEmpty()) // true arr.push("fish") console.log("Non-empty array: " + arr.isEmpty()) // false local emptyStr emptyStr = new StringBox("") console.log("Empty string: " + emptyStr.isEmpty()) // true local fullStr fullStr = new StringBox("Nyash") console.log("Non-empty string: " + fullStr.isEmpty()) // false local emptyMap emptyMap = new MapBox() console.log("Empty map: " + emptyMap.isEmpty()) // true console.log("Non-empty map: " + map.isEmpty()) // false console.log("") // 3. 実用例:型を気にせず処理 console.log("3) Practical example - type-agnostic processing:") local items items = new ArrayBox() items.push(arr) // Array items.push(str) // String items.push(map) // Map // どんな型でも統一的に処理できる! local i i = 0 loop(i < items.length()) { local item item = items.get(i) console.log("Item " + i + " - length: " + item.length() + ", empty: " + item.isEmpty()) i = i + 1 } console.log("") console.log("=== ANYヘルパーの威力 ===") console.log("- 型固有のメソッドを覚える必要なし") console.log("- Array/String/Mapを統一的に扱える") console.log("- Everything is Box 哲学の体現!") return "Demo complete!" } }