2

私は次のことがうまくいくことを望んでいました:

void takeOnlyStrings(String* s) {
   print(s);
}

{String|Integer*} ab = {"Hi", 1};

takeOnlyStrings(for (item in ab) if (item is String) item);

またはこれでも:

Boolean isString(Object o) => (o is String);
takeOnlyStrings(ab.filter(isString));

しかし、運がありません。

4

2 に答える 2

5

2 番目の可能性は次のとおりです。Ceylon 1.2 では、新しい方法Iterable.narrow()を使用できます。

void takeOnlyStrings(String* s) {
    print(s);
}

{String|Integer*} ab = {"Hi", 1};

takeOnlyStrings(*ab.narrow<String>());

それが役立つことを願っています!

于 2015-07-29T21:08:17.250 に答える