Skip to content

Commit e4ec1fb

Browse files
committed
Методы для создания ArrayValue из массива байт и строк
1 parent 401d426 commit e4ec1fb

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

src/com/annimon/ownlang/lib/ArrayValue.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,24 @@
1010
* @author aNNiMON
1111
*/
1212
public final class ArrayValue implements Value, Iterable<Value> {
13+
14+
public static ArrayValue of(byte[] array) {
15+
final int size = array.length;
16+
final ArrayValue result = new ArrayValue(size);
17+
for (int i = 0; i < size; i++) {
18+
result.set(i, NumberValue.of(array[i]));
19+
}
20+
return result;
21+
}
22+
23+
public static ArrayValue of(String[] array) {
24+
final int size = array.length;
25+
final ArrayValue result = new ArrayValue(size);
26+
for (int i = 0; i < size; i++) {
27+
result.set(i, new StringValue(array[i]));
28+
}
29+
return result;
30+
}
1331

1432
public static ArrayValue add(ArrayValue array, Value value) {
1533
final int last = array.elements.length;

src/com/annimon/ownlang/lib/modules/files.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.io.File;
1111
import java.io.FileInputStream;
1212
import java.io.FileOutputStream;
13-
import java.io.FilenameFilter;
1413
import java.io.IOException;
1514
import java.io.InputStreamReader;
1615
import java.io.OutputStreamWriter;
@@ -124,13 +123,7 @@ public Value execute(Value... args) {
124123
private static class listFiles extends FileFunction {
125124
@Override
126125
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
127-
final String[] files = fileInfo.file.list();
128-
final int size = files.length;
129-
final ArrayValue result = new ArrayValue(size);
130-
for (int i = 0; i < size; i++) {
131-
result.set(i, new StringValue(files[i]));
132-
}
133-
return result;
126+
return ArrayValue.of(fileInfo.file.list());
134127
}
135128
}
136129

@@ -221,13 +214,7 @@ protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
221214
}
222215
baos.flush();
223216
baos.close();
224-
final byte[] bytes = baos.toByteArray();
225-
final int size = bytes.length;
226-
final ArrayValue result = new ArrayValue(size);
227-
for (int i = 0; i < size; i++) {
228-
result.set(i, NumberValue.of(bytes[i]));
229-
}
230-
return result;
217+
return ArrayValue.of(baos.toByteArray());
231218
}
232219
}
233220

src/com/annimon/ownlang/lib/modules/functions/std_split.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ public Value execute(Value... args) {
1313
final int limit = (args.length == 3) ? args[2].asInt() : 0;
1414

1515
final String[] parts = input.split(regex, limit);
16-
final ArrayValue result = new ArrayValue(parts.length);
17-
for (int i = 0; i < parts.length; i++) {
18-
result.set(i, new StringValue(parts[i]));
19-
}
20-
21-
return result;
16+
return ArrayValue.of(parts);
2217
}
2318
}

0 commit comments

Comments
 (0)