Tips for golfing in Dart
Clash Royale CLAN TAG#URR8PPP
up vote
3
down vote
favorite
Dart is an object oriented programming language borrowing from both Java and Javascript. What general tips do you have for golfing in Dart? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to Dart (e.g. "remove comments" is not an answer). Please post one tip per answer.
If a tip is similar to Java/JS, please link to the answer in the original language's thread as well if you can.
Taken mostly from Joey's Tips for Powershell
code-golf tips dart
add a comment |
up vote
3
down vote
favorite
Dart is an object oriented programming language borrowing from both Java and Javascript. What general tips do you have for golfing in Dart? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to Dart (e.g. "remove comments" is not an answer). Please post one tip per answer.
If a tip is similar to Java/JS, please link to the answer in the original language's thread as well if you can.
Taken mostly from Joey's Tips for Powershell
code-golf tips dart
add a comment |
up vote
3
down vote
favorite
up vote
3
down vote
favorite
Dart is an object oriented programming language borrowing from both Java and Javascript. What general tips do you have for golfing in Dart? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to Dart (e.g. "remove comments" is not an answer). Please post one tip per answer.
If a tip is similar to Java/JS, please link to the answer in the original language's thread as well if you can.
Taken mostly from Joey's Tips for Powershell
code-golf tips dart
Dart is an object oriented programming language borrowing from both Java and Javascript. What general tips do you have for golfing in Dart? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to Dart (e.g. "remove comments" is not an answer). Please post one tip per answer.
If a tip is similar to Java/JS, please link to the answer in the original language's thread as well if you can.
Taken mostly from Joey's Tips for Powershell
code-golf tips dart
code-golf tips dart
asked 59 mins ago
Elcan
24615
24615
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
up vote
2
down vote
Variable declaration
Regular variable declaration takes 4 bytes (var
) + 2 bytes/variable (i,
).
You can declare variables as optional named parameters for your function and shave a few bytes.
f()var i,j,k; //Takes 15 bytes
g(i,j,k) //Takes 12 bytes
Note: This doesn't work for non-constant values, for example:
f(i=List) //Works
g(i=) //Doesn't work
f(i=0,j=0) //Works
g(i=0,j=i) //Doesn't work
add a comment |
up vote
1
down vote
Implicit parameter passing
In some cases where Dart expects a function to be declared, you can code the function elsewhere, and then just pass its name. Dart will take care of passing the value automatically. Let me illustrate :
[0,1,2,3,4,5].forEach((i) => print(i)); //Using a lambda
[0,1,2,3,4,5].forEach(print); //Using implicit parameter passing since print() expects a similar parameter
You can also use your own functions
f(List i)
i.forEach(print); //Prints each number on a new line
[[0,1], [1,2]].forEach(f); //Prints 0 n 1 n 1 n 2n
If you know a lambda might be used in multiple places, for example a map()
, it can be useful to make it its own function and pass it that way instead of declaring it multiple times.
add a comment |
up vote
1
down vote
String conversion and concatenation
Dart doesn't allow for concatenation for types other than String and doesn't implicitly convert to String like C# does for example.
It however includes a very useful way to concatenate variables without needing to use any addition operator or explicitly casting to String (using the .toString()
method).
var i=0,j=1,k=2;
var s0='$j'; //'1'
var s1='$i$j$k'; //'012'
var s2='i=$i'; //'i=0'
You can also perform operations directly in the $
section and save a few temporary variable declarations.
var i=0,j=1,k=2;
var s='$i+j+k'; //'3'
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
Variable declaration
Regular variable declaration takes 4 bytes (var
) + 2 bytes/variable (i,
).
You can declare variables as optional named parameters for your function and shave a few bytes.
f()var i,j,k; //Takes 15 bytes
g(i,j,k) //Takes 12 bytes
Note: This doesn't work for non-constant values, for example:
f(i=List) //Works
g(i=) //Doesn't work
f(i=0,j=0) //Works
g(i=0,j=i) //Doesn't work
add a comment |
up vote
2
down vote
Variable declaration
Regular variable declaration takes 4 bytes (var
) + 2 bytes/variable (i,
).
You can declare variables as optional named parameters for your function and shave a few bytes.
f()var i,j,k; //Takes 15 bytes
g(i,j,k) //Takes 12 bytes
Note: This doesn't work for non-constant values, for example:
f(i=List) //Works
g(i=) //Doesn't work
f(i=0,j=0) //Works
g(i=0,j=i) //Doesn't work
add a comment |
up vote
2
down vote
up vote
2
down vote
Variable declaration
Regular variable declaration takes 4 bytes (var
) + 2 bytes/variable (i,
).
You can declare variables as optional named parameters for your function and shave a few bytes.
f()var i,j,k; //Takes 15 bytes
g(i,j,k) //Takes 12 bytes
Note: This doesn't work for non-constant values, for example:
f(i=List) //Works
g(i=) //Doesn't work
f(i=0,j=0) //Works
g(i=0,j=i) //Doesn't work
Variable declaration
Regular variable declaration takes 4 bytes (var
) + 2 bytes/variable (i,
).
You can declare variables as optional named parameters for your function and shave a few bytes.
f()var i,j,k; //Takes 15 bytes
g(i,j,k) //Takes 12 bytes
Note: This doesn't work for non-constant values, for example:
f(i=List) //Works
g(i=) //Doesn't work
f(i=0,j=0) //Works
g(i=0,j=i) //Doesn't work
answered 40 mins ago
Elcan
24615
24615
add a comment |
add a comment |
up vote
1
down vote
Implicit parameter passing
In some cases where Dart expects a function to be declared, you can code the function elsewhere, and then just pass its name. Dart will take care of passing the value automatically. Let me illustrate :
[0,1,2,3,4,5].forEach((i) => print(i)); //Using a lambda
[0,1,2,3,4,5].forEach(print); //Using implicit parameter passing since print() expects a similar parameter
You can also use your own functions
f(List i)
i.forEach(print); //Prints each number on a new line
[[0,1], [1,2]].forEach(f); //Prints 0 n 1 n 1 n 2n
If you know a lambda might be used in multiple places, for example a map()
, it can be useful to make it its own function and pass it that way instead of declaring it multiple times.
add a comment |
up vote
1
down vote
Implicit parameter passing
In some cases where Dart expects a function to be declared, you can code the function elsewhere, and then just pass its name. Dart will take care of passing the value automatically. Let me illustrate :
[0,1,2,3,4,5].forEach((i) => print(i)); //Using a lambda
[0,1,2,3,4,5].forEach(print); //Using implicit parameter passing since print() expects a similar parameter
You can also use your own functions
f(List i)
i.forEach(print); //Prints each number on a new line
[[0,1], [1,2]].forEach(f); //Prints 0 n 1 n 1 n 2n
If you know a lambda might be used in multiple places, for example a map()
, it can be useful to make it its own function and pass it that way instead of declaring it multiple times.
add a comment |
up vote
1
down vote
up vote
1
down vote
Implicit parameter passing
In some cases where Dart expects a function to be declared, you can code the function elsewhere, and then just pass its name. Dart will take care of passing the value automatically. Let me illustrate :
[0,1,2,3,4,5].forEach((i) => print(i)); //Using a lambda
[0,1,2,3,4,5].forEach(print); //Using implicit parameter passing since print() expects a similar parameter
You can also use your own functions
f(List i)
i.forEach(print); //Prints each number on a new line
[[0,1], [1,2]].forEach(f); //Prints 0 n 1 n 1 n 2n
If you know a lambda might be used in multiple places, for example a map()
, it can be useful to make it its own function and pass it that way instead of declaring it multiple times.
Implicit parameter passing
In some cases where Dart expects a function to be declared, you can code the function elsewhere, and then just pass its name. Dart will take care of passing the value automatically. Let me illustrate :
[0,1,2,3,4,5].forEach((i) => print(i)); //Using a lambda
[0,1,2,3,4,5].forEach(print); //Using implicit parameter passing since print() expects a similar parameter
You can also use your own functions
f(List i)
i.forEach(print); //Prints each number on a new line
[[0,1], [1,2]].forEach(f); //Prints 0 n 1 n 1 n 2n
If you know a lambda might be used in multiple places, for example a map()
, it can be useful to make it its own function and pass it that way instead of declaring it multiple times.
answered 30 mins ago
Elcan
24615
24615
add a comment |
add a comment |
up vote
1
down vote
String conversion and concatenation
Dart doesn't allow for concatenation for types other than String and doesn't implicitly convert to String like C# does for example.
It however includes a very useful way to concatenate variables without needing to use any addition operator or explicitly casting to String (using the .toString()
method).
var i=0,j=1,k=2;
var s0='$j'; //'1'
var s1='$i$j$k'; //'012'
var s2='i=$i'; //'i=0'
You can also perform operations directly in the $
section and save a few temporary variable declarations.
var i=0,j=1,k=2;
var s='$i+j+k'; //'3'
add a comment |
up vote
1
down vote
String conversion and concatenation
Dart doesn't allow for concatenation for types other than String and doesn't implicitly convert to String like C# does for example.
It however includes a very useful way to concatenate variables without needing to use any addition operator or explicitly casting to String (using the .toString()
method).
var i=0,j=1,k=2;
var s0='$j'; //'1'
var s1='$i$j$k'; //'012'
var s2='i=$i'; //'i=0'
You can also perform operations directly in the $
section and save a few temporary variable declarations.
var i=0,j=1,k=2;
var s='$i+j+k'; //'3'
add a comment |
up vote
1
down vote
up vote
1
down vote
String conversion and concatenation
Dart doesn't allow for concatenation for types other than String and doesn't implicitly convert to String like C# does for example.
It however includes a very useful way to concatenate variables without needing to use any addition operator or explicitly casting to String (using the .toString()
method).
var i=0,j=1,k=2;
var s0='$j'; //'1'
var s1='$i$j$k'; //'012'
var s2='i=$i'; //'i=0'
You can also perform operations directly in the $
section and save a few temporary variable declarations.
var i=0,j=1,k=2;
var s='$i+j+k'; //'3'
String conversion and concatenation
Dart doesn't allow for concatenation for types other than String and doesn't implicitly convert to String like C# does for example.
It however includes a very useful way to concatenate variables without needing to use any addition operator or explicitly casting to String (using the .toString()
method).
var i=0,j=1,k=2;
var s0='$j'; //'1'
var s1='$i$j$k'; //'012'
var s2='i=$i'; //'i=0'
You can also perform operations directly in the $
section and save a few temporary variable declarations.
var i=0,j=1,k=2;
var s='$i+j+k'; //'3'
edited 25 mins ago
answered 48 mins ago
Elcan
24615
24615
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f175574%2ftips-for-golfing-in-dart%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password