Skip to content

Instantly share code, notes, and snippets.

@AAQ-AND-DEV
Created March 25, 2019 01:36
Show Gist options
  • Save AAQ-AND-DEV/5853abe30639c39c3fd7ea09a7caabb0 to your computer and use it in GitHub Desktop.
Save AAQ-AND-DEV/5853abe30639c39c3fd7ea09a7caabb0 to your computer and use it in GitHub Desktop.
lists, maps, iterators
void main(){
var list = [10, "what", 4, 99];
var list2 = <Object>[10, "what", 4, 99];
print(list[1]);
//print(list.runtimeType); //error in dartPad
print(list.length);
for(int i = 0; i<list.length; i++){
print("Index $i contains ${list[i]}");
}
print(list2.runtimeType);
var ind = 0;
for (Object o in list2){
print("index $ind contains $o");
ind++;
}
var listBools = [true, false, true];
print(listBools.runtimeType);
//use isEmpty or isNotEmpty properties (not length)
//from dartlang docs
//https://www.dartlang.org/guides/language/sound-dart
//type argument inference
List<int> listOfInt = [];
var listOfDouble = [3.0, 1.5, 7.5];
var ints = listOfDouble.map((x) => x.toInt());
print(ints.runtimeType);
ints.forEach(print);
//List<int> ints2 = List<int>.from(listOfDouble); //presence of doubles throws error
List<int> ints3 = [];
//I'm surprised this works to get just the 3
for (num n in listOfDouble){
n.toInt();
if (n is! int) {
} else {
ints3.add(n);
}
}
print(ints3);
var dict = {
"hello" : 'salut',
"goodbye" : "au revoir",
"thanks" : "merci"
};
var keys = dict.keys;
var vals = dict.values;
dict.forEach((k,v)=>print("$k : $v"));
var iter = keys.iterator;
var iter2 = vals.iterator;
//can you iterate in parallel over both iterables? yup!
while (iter.moveNext()&& iter2.moveNext()){
print(iter.current);
print(iter2.current);
}
for (int i = 0; i<keys.length; i++){
//print(keys[i]); error: no indexing
//print(vals[i]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment