Comments (2)
Interesting idea! Not quite general enough for my taste though.
Your proposed or
is not general, because some developers want it to work for empty strings, some for blank strings, some for blank strings and dashes "-", .... There are too many ways to get it right.
Let me show you an alternative
In Dart, you can use the ??
operator for a fallback for nullable types. This is commonly known and you'd use it too here if it would also work for an empty string.
What we can do is convert all empty strings to null
and then use the ??
operator.
someNullOrEmptyStr.emptyAsNull() ?? 'not null or empty string';
This would also work for any other concept of "emptyness" that should be replaced with a placeholder and can be chained
someNullOrEmptyStr.blankAsNull().emptyAsNull().dashAsNull() ?? 'not null or empty string';
Another benefit of ??
is that it works lazyly. If the fallback is not required, the function is not called.
"".emptyAsNull() ?? expensiveFunction(); // expensiveFunction is not called
"".or(expensiveFunction()) // expensiveFunction is called but not used
from dartx.
Oh wow that's even better! Thanks for the correction!
from dartx.
Related Issues (20)
- Proposal: modifyWhere and modifyFirstWhere HOT 1
- pub get fails after upgrading flutter version for app developed with previous flutter version HOT 1
- Linear complexity of elementAt HOT 2
- Extension for text coloring based on luminance
- Create proper documentation for dartx HOT 2
- Improve README HOT 3
- Flatten should work with deeply nested lists as well
- Class 'List<List<int>>' has no instance method 'flatten'. Receiver: Instance(length:1) of '_GrowableList' Tried calling: flatten()
- More detailed and clear documentation
- Release update on pub HOT 3
- String isNullOrBlank missing HOT 1
- `takeFirst` and `takeLast` are not index safe HOT 1
- SSL Cert expired HOT 2
- `move` methods on `List` HOT 1
- Feature Request "IndicesWhere" HOT 2
- Update to support flutter 3.10 propoerly and upgrade depedencies HOT 1
- No more updates ? HOT 2
- Privacy manifest file for iOS is missing HOT 1
- Best extension design? 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 dartx.