mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
Методы для создания ArrayValue из массива байт и строк
This commit is contained in:
parent
401d426163
commit
e4ec1fba18
@ -10,6 +10,24 @@ import java.util.List;
|
||||
* @author aNNiMON
|
||||
*/
|
||||
public final class ArrayValue implements Value, Iterable<Value> {
|
||||
|
||||
public static ArrayValue of(byte[] array) {
|
||||
final int size = array.length;
|
||||
final ArrayValue result = new ArrayValue(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
result.set(i, NumberValue.of(array[i]));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static ArrayValue of(String[] array) {
|
||||
final int size = array.length;
|
||||
final ArrayValue result = new ArrayValue(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
result.set(i, new StringValue(array[i]));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static ArrayValue add(ArrayValue array, Value value) {
|
||||
final int last = array.elements.length;
|
||||
|
@ -10,7 +10,6 @@ import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
@ -124,13 +123,7 @@ public final class files implements Module {
|
||||
private static class listFiles extends FileFunction {
|
||||
@Override
|
||||
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
|
||||
final String[] files = fileInfo.file.list();
|
||||
final int size = files.length;
|
||||
final ArrayValue result = new ArrayValue(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
result.set(i, new StringValue(files[i]));
|
||||
}
|
||||
return result;
|
||||
return ArrayValue.of(fileInfo.file.list());
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,13 +214,7 @@ public final class files implements Module {
|
||||
}
|
||||
baos.flush();
|
||||
baos.close();
|
||||
final byte[] bytes = baos.toByteArray();
|
||||
final int size = bytes.length;
|
||||
final ArrayValue result = new ArrayValue(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
result.set(i, NumberValue.of(bytes[i]));
|
||||
}
|
||||
return result;
|
||||
return ArrayValue.of(baos.toByteArray());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,11 +13,6 @@ public final class std_split implements Function {
|
||||
final int limit = (args.length == 3) ? args[2].asInt() : 0;
|
||||
|
||||
final String[] parts = input.split(regex, limit);
|
||||
final ArrayValue result = new ArrayValue(parts.length);
|
||||
for (int i = 0; i < parts.length; i++) {
|
||||
result.set(i, new StringValue(parts[i]));
|
||||
}
|
||||
|
||||
return result;
|
||||
return ArrayValue.of(parts);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user