馃搵 Listy
Listy to uporz膮dkowane kolekcje warto艣ci. Mog膮 zawiera膰 elementy r贸偶nych typ贸w i s膮 mutowalne.
Tworzenie list
let numbers = [1, 2, 3, 4, 5];
let mixed = [1, "text", true, null];
let empty = [];
let nested = [[1, 2], [3, 4]];
let list = [1, 2, 3,];
let range = 1..5;
let odds = 1..10 step 2;
let zeros = [0] * 5;
let pattern = [1, 2] * 3;
Dost臋p do element贸w
let list = [10, 20, 30, 40, 50];
print(list[0]);
print(list[2]);
print(list[-1]);
print(list[-2]);
print(list[-5]);
print(list?[100]);
Slicing
let list = [0, 1, 2, 3, 4, 5];
print(list[1:4]);
print(list[:3]);
print(list[3:]);
print(list[1:-1]);
print(list[-3:]);
Modyfikacja
let list = [1, 2, 3];
list[0] = 100;
print(list);
list[-1] = 99;
print(list);
list.push(4);
list.pop();
list.unshift(0);
list.shift();
W艂a艣ciwo艣ci list (OOP)
let numbers = [1, 2, 3, 4, 5];
numbers.length;
numbers.first;
numbers.last;
numbers.isEmpty;
[].isEmpty;
Metody transformacji (zwracaj膮 now膮 list臋)
let nums = [1, 2, 3, 4, 5];
nums.map(x => x * 2);
nums.filter(x => x > 2);
nums.reverse();
[3, 1, 4, 1, 5].sort();
[1, 2, 2, 3, 3, 3].unique();
[[1, 2], [3, 4]].flatten();
Metody agregacji
let nums = [1, 2, 3, 4, 5];
nums.reduce((acc, x) => acc + x, 0);
nums.sum();
nums.min();
nums.max();
nums.average();
Metody wyszukiwania
let nums = [1, 2, 3, 4, 5];
nums.find(x => x > 3);
nums.findIndex(x => x > 3);
nums.includes(3);
nums.indexOf(3);
nums.some(x => x > 4);
nums.every(x => x > 0);
Pobieranie fragment贸w
let nums = [1, 2, 3, 4, 5];
nums.take(3);
nums.drop(2);
nums.slice(1, 4);
nums.chunk(2);
艁膮czenie i konwersja
[1, 2].concat([3, 4]);
["a", "b", "c"].join("-");
let a = [1, 2];
let b = [...a, 3, 4];
Chainowanie metod
let result = [1, 2, 3, 4, 5, 6]
.filter(x => x % 2 == 0)
.map(x => x * 10)
.reduce((a, b) => a + b, 0);
print(result);
List Comprehension
let squares = [x * x for x in 1..5];
print(squares);
let evens = [x for x in 1..10 if x % 2 == 0];
print(evens);
let bigSquares = [x * x for x in 1..10 if x > 5];
print(bigSquares);
let indices = [i for i in 0..<5];
print(indices);
Iteracja
let items = ["a", "b", "c"];
for (item in items) {
print(item);
}
for (i in 0..size(items)) {
print(i, items[i]);
}
items.forEach(item => print(item));
馃挕 Wskaz贸wka
Metody map, filter, reduce s膮 dost臋pne zar贸wno jako metody OOP (list.map(...)) jak i funkcje po za艂adowaniu modu艂u functional.