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)
- [Null-aware elements] co19 Tests HOT 5
- [Null-aware elements] All tests in tests/language and co19 passing.
- Feature Request: Push Members Down & Safe Delete Refactor
- Macro: `extendsType` freezes analyzer HOT 5
- Ctrl + Click on @override should take you to the method being overriden HOT 8
- [dart2wasm] Compiler crash when using ffi Structs as a paramter to @Native HOT 3
- [Exhaustiveness Checking] Different behavior between statements and expressions HOT 12
- Language server is failing to initiate after upgrade to Dart 3.4.1 HOT 7
- Dart API docs for analyzer Package are missing HOT 9
- `TargetKind` for resource identifiers annotations HOT 1
- Error.throwWithStackTrace hides type and message of error HOT 3
- [CFE] Add implicit "return null" to AST if function end is reachable according to Dart language flow analysis
- `Swap with parent/child` assist should work on single-child `Flex`
- avoid_init_to_null fix of late initialize causes runtime errors HOT 1
- [dart2wasm] iFrame locks position on transition into view HOT 4
- [CP] [vm/ffi] Fix variadic arguments on MacOS Arm64 HOT 2
- analyzer plugins do not reanalyze non-Dart files when they are modified HOT 7
- `dart fix` output case inconsistency HOT 1
- Import `new_library` assist should auto-remove unecessary import HOT 2
- Add more context to `not_a_type` diagnostics HOT 1
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.