Comments (21)
Dart has had ?.
and ??
for several years now. It's closed because it's done. :)
from sdk.
This comment was originally written by [email protected]
This was entered as a Defect in error, please change to Enhancement.
from sdk.
This comment was originally written by [email protected]
Removed Type-Defect label.
Added Type-Enhancement label.
from sdk.
This comment was originally written by [email protected]
Added Area-Language, Triaged labels.
from sdk.
Interesting idea. We'll think about it.
Set owner to @gbracha.
from sdk.
Issue #66 has been merged into this issue.
from sdk.
This comment was originally written by [email protected]
A replacement of || for null-checks would also be quite useful, as || now works only on booleans. C# uses ?? for this purpose.
foo = mightBeNull || default; //in JS
becomes
foo = mightBeNull ?? default; //in C# or hopefully future Dart?
from sdk.
This comment was originally written by [email protected]
+1 Dart really needs to copy CoffeeScript's existential as this is one of the biggest friction points I'm facing (moving from CoffeeScript).
Both these snippets are obvious, more readable, require less boilerplate and make it effortless to write safer code:
zip = lottery.drawWinner?().address?.zipcode;
foo = mightBeNull ?? default;
from sdk.
Added apr30-triage label.
from sdk.
Removed apr30-triage label.
from sdk.
Added triage1 label.
from sdk.
Added this to the Later milestone.
Removed triage1 label.
from sdk.
This comment was originally written by [email protected]
∃ and ∄ would be appropriate to use for this. As our current static keyboard layouts fail to provide a usable input mechanism for such symbols, an ascii alias might be usefull ;)
from sdk.
Issue #5630 has been merged into this issue.
from sdk.
This comment was originally written by [email protected]
How about making this more like as in Objective C where you can send messages to NIL that then will be ignored?
In case of chaining multiple messages send to a given object and objects returned thereof, each message sent to a NIL objects would return a NIL again so that the chained calls would not fail.
from sdk.
This comment was originally written by [email protected]
I like Obj-C approach as well but for ease of determining the source of errors, it may be a good idea to be explicit when it doesn't matter.
The existential operator is a convenient choice to opt-in for this.
from sdk.
This comment was originally written by [email protected]
I use in Javascript when recibe info in Json files with optative fields.
((student.preferences || {}).hobies || {}).bricollage
I prefer any sugar sintax not LISP (ie: without the intrusive parenthesis).
from sdk.
This comment was originally written by [email protected]
For the ease of discussion, I'll add that the ?? operator in C# is called the null-coalescing operator.
Here's an example I've used in C# where this operator has come in handy:
if ((stringMightBeNull ?? "").Length == 0) {
// string is empty or null
}
from sdk.
I miss this from Ruby, fwiw.
from sdk.
Met with external customers today, and they asked for this, or something like it. They'd be fine with C#'s null-coalescing operator.
from sdk.
What happened to this? Why is it closed?
from sdk.
Related Issues (20)
- `ConstructorDefinitionBuilder.augment` cannot augment factory constructor
- [vm] Dart AOT runtime should refuse to run snapshots with incompatible sanitizers HOT 2
- [vm] gen_snapshot without santizers should be able to create AOT snapshots to be used with AOT runtimes with sanitizers HOT 1
- [CRASH] `dart run` fails logging `Compilation did not produce any result...` and crashes with `PathNotFoundException` HOT 5
- allow to destructure record types with positional fields HOT 8
- [analyzer] add warning when abstract interface class has unused implementation.
- [analyzer] incorrectly marking as dead code when accessing record property in ternary
- Breakpoints skipped in tests when injecting late initialized dependency. HOT 3
- Function argument rejected based on faulty inferred parameter type
- AOT compilation runs into speculative input use by `CalculateElementAddressInstr` HOT 1
- Analyzer Feedback from IntelliJ
- Type inference for abstract classes with recurring generics can't be inferred HOT 10
- The front end is not happy about wrong constructor declaration
- The front end is not happy about wrong extension type constructor declaration
- pkg/analyzer/test/src/dart/resolution/augmented_invocation_test fails with RuntimeError on analyzer-asserts-win bot HOT 2
- Code completion suggestions are irrelevant / context unaware HOT 2
- [Wildcard Variables] Language Tests in `tests/language` HOT 4
- [Wildcard Variables] All tests in `tests/language` and co19 passing.
- [Wildcard Variables] Experiment Flag HOT 2
- [Wildcard Variables] CFE Implementation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdk.