Skip to content

Instantly share code, notes, and snippets.

View davidmigloz's full-sized avatar

David Miguel Lozano davidmigloz

View GitHub Profile
@davidmigloz
davidmigloz / sets.dart
Last active May 4, 2021 07:03
Dart vs Kotlin: sets
import 'package:collection/collection.dart';
void main() {
// Mutable set
final mutableSet = {1, 2, 3, 3};
mutableSet.forEach((e) => print(e)); // 1 2 3
// Empty mutable set
final emptySet = <int>{};
// Immutable set (copy of the original)
final immutableSet = Set.unmodifiable({1, 2, 3});
@davidmigloz
davidmigloz / lists.dart
Last active May 3, 2021 08:47
Dart vs Kotlin: lists
import 'package:collection/collection.dart';
void main() {
// Mutable growable list
final mutableList = [1, 2, 3];
mutableList.add(499);
final element = mutableList[3];
mutableList.length = 2; // truncate
// Mutable fixed-length list
final fixedLengthList = List.filled(5, 0);
@davidmigloz
davidmigloz / synchronous_generation.dart
Created May 1, 2021 07:33
Dart vs Kotlin: synchronous generation
Iterable<int> oddNumbers(int num) sync* {
for (int odd = 1; odd / 2 < num; odd += 2) {
yield odd;
}
}
void main() {
// Synchronous generation function (returns Iterable)
oddNumbers(3)
.map((num) {
@davidmigloz
davidmigloz / extension_functions.dart
Created April 20, 2021 22:31
Dart vs Kotlin: extension functions
extension NumberExtensions on String {
int parseInt() {
return int.parse(this);
}
}
extension ListExtensions<T> on List<T> {
List<List<T>> split(int at) {
return [sublist(0, at), sublist(at)];
}
@davidmigloz
davidmigloz / classes.dart
Last active April 20, 2021 22:20
Dart vs Kotlin: classes
abstract class Vehicle {
String brand; // Public
int _year = 0; // Private
int get year => _year; // Getter
set year(int value) { // Setter
if (value < 0) {
throw ArgumentError();
}
_year = value;
}
@davidmigloz
davidmigloz / threading.dart
Last active April 21, 2021 09:58
Dart vs Kotlin: threading
import 'dart:isolate';
void compute(int num) {
final isolateName = Isolate.current.debugName;
print('Isolate $isolateName computing $num...');
}
main() async {
print('Spawning...');
final isoFut1 = Isolate.spawn(compute, 1, debugName: "I1");
@davidmigloz
davidmigloz / async_concurrent.dart
Last active April 20, 2021 09:10
Dart vs Kotlin: async concurrent
Future<String> loadImage(String name) async {
await Future.delayed(Duration(seconds: 1));
return "IMAGE$name";
}
displayImages(String image1, String image2) {
print("$image1 | $image2");
}
void main() async {
@davidmigloz
davidmigloz / async_sequential.dart
Last active April 20, 2021 09:07
Dart vs Kotlin: async sequential
Future<String> requestToken() async {
await Future.delayed(Duration(seconds: 1));
return "TOKEN";
}
Future<void> postUserName(String token, String name) async {
await Future.delayed(Duration(seconds: 1));
}
void main() async {
@davidmigloz
davidmigloz / functions.dart
Created April 19, 2021 12:37
Dart vs Kotlin: functions
greet(String name) => print("Hello $name");
greet2(String person1, [String? person2]) {
print("Hello $person1");
if (person2 != null) print("Hello $person2");
}
String getGreeting({String name = "Dart"}) {
return "Hello $name";
}
@davidmigloz
davidmigloz / loops.dart
Last active April 20, 2021 09:00
Dart vs Kotlin: loops
void main() {
for (var i = 5; i >= 0; i = i - 2) {
print(i); // 5 3 1
}
for (var num in [1, 4, 5, 2]) {
print(num); // 1 4 5 2
}
final set = {"A", "B", "C"};
set.forEach((letter) {
print(letter); // A B C