Implement new initialization function - NewFromFormattedString #184
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
This new init function was requested more than 3 times (#98 #145 #183), so I thought it's the time we should implement such functionality. Also, personally I think it would be a great addition to the library too.
Implementation:
Implementation is pretty straight-forward.
NewFromFormattedString
is a wrapper aroundNewFromString
, but before passing the value to mentioned before the init function we replace all characters matched byreplRegexp
with empty string""
. I found this approach the most flexible and appealing for the user of the decimal library. I gathered opinions from my friends and they also agree with me.I may be wrong, but I think it's a much better approach than creating a init function with any other additional arguments such as:
thousandsSeparator
and/orprefixToRemove
, etc.replRegex
gives a lot of freedom and flexibility to the users of this library without adding dozens of arguments to the function signature that they probably don't need.