Parse dynamic as int or fallback to a default value The 2019 Stack Overflow Developer Survey Results Are InVariable Naming Conventions For Maps/Lists in Dynamically-Typed languagesWhat is the difference between statically typed and dynamically typed languages?Static/Dynamic vs Strong/Weakdart, a nice way of replacing keys and values in maps?Math in Dart - working with numbers other than base 10Dynamic typing in JavaScript: Is this a good idea?Declare a List of Map in a class with Dart and FlutterUse question mark operator when calling method on possible null value?Flutter TextField with controller resetting after TextInputType changeError: “type 'String' is not a subtype of type 'int'” when mapping a Dart Map

Can't find the latex code for the ⍎ (down tack jot) symbol

Should I use my personal or workplace e-mail when registering to external websites for work purpose?

Understanding the implication of what "well-defined" means for the operation in quotient group

Falsification in Math vs Science

Is three citations per paragraph excessive for undergraduate research paper?

Deadlock Graph and Interpretation, solution to avoid

Inversion Puzzle

Why Did Howard Stark Use All The Vibranium They Had On A Prototype Shield?

Inflated grade on resume at previous job, might former employer tell new employer?

Could JWST stay at L2 "forever"?

What does "sndry explns" mean in one of the Hitchhiker's guide books?

Limit the amount of RAM Mathematica may access?

Where to refill my bottle in India?

Is it possible for the two major parties in the UK to form a coalition with each other instead of a much smaller party?

"To split hairs" vs "To be pedantic"

How to reverse every other sublist of a list?

How are circuits which use complex ICs normally simulated?

How to change the limits of integration

Time travel alters history but people keep saying nothing's changed

How was Skylab's orbit inclination chosen?

JSON.serialize: is it possible to suppress null values of a map?

I looked up a future colleague on LinkedIn before I started a job. I told my colleague about it and he seemed surprised. Should I apologize?

How can I fix this gap between bookcases I made?

Idiomatic way to prevent slicing?



Parse dynamic as int or fallback to a default value



The 2019 Stack Overflow Developer Survey Results Are InVariable Naming Conventions For Maps/Lists in Dynamically-Typed languagesWhat is the difference between statically typed and dynamically typed languages?Static/Dynamic vs Strong/Weakdart, a nice way of replacing keys and values in maps?Math in Dart - working with numbers other than base 10Dynamic typing in JavaScript: Is this a good idea?Declare a List of Map in a class with Dart and FlutterUse question mark operator when calling method on possible null value?Flutter TextField with controller resetting after TextInputType changeError: “type 'String' is not a subtype of type 'int'” when mapping a Dart Map



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I have a map with dynamic values, one of which can be an int, string or null (i.e. non-existing key).



I want to store this value in an int variable. The parsing I came up with ended up being quite cumbersome:



Map<String, dynamic> map = 'maxposts': null; // or 23 or '42'

// Try to parse an int value or fall back to 0
int maxposts = (map['maxposts'] is int)
? map['maxposts']
: int.tryParse(map['maxposts'] ?? '0') ?? 0;


Is there a nicer way of doing such a "try-fallback" parsing?










share|improve this question

















  • 1





    I don't think there is.

    – Günter Zöchbauer
    Mar 8 at 8:43

















0















I have a map with dynamic values, one of which can be an int, string or null (i.e. non-existing key).



I want to store this value in an int variable. The parsing I came up with ended up being quite cumbersome:



Map<String, dynamic> map = 'maxposts': null; // or 23 or '42'

// Try to parse an int value or fall back to 0
int maxposts = (map['maxposts'] is int)
? map['maxposts']
: int.tryParse(map['maxposts'] ?? '0') ?? 0;


Is there a nicer way of doing such a "try-fallback" parsing?










share|improve this question

















  • 1





    I don't think there is.

    – Günter Zöchbauer
    Mar 8 at 8:43













0












0








0








I have a map with dynamic values, one of which can be an int, string or null (i.e. non-existing key).



I want to store this value in an int variable. The parsing I came up with ended up being quite cumbersome:



Map<String, dynamic> map = 'maxposts': null; // or 23 or '42'

// Try to parse an int value or fall back to 0
int maxposts = (map['maxposts'] is int)
? map['maxposts']
: int.tryParse(map['maxposts'] ?? '0') ?? 0;


Is there a nicer way of doing such a "try-fallback" parsing?










share|improve this question














I have a map with dynamic values, one of which can be an int, string or null (i.e. non-existing key).



I want to store this value in an int variable. The parsing I came up with ended up being quite cumbersome:



Map<String, dynamic> map = 'maxposts': null; // or 23 or '42'

// Try to parse an int value or fall back to 0
int maxposts = (map['maxposts'] is int)
? map['maxposts']
: int.tryParse(map['maxposts'] ?? '0') ?? 0;


Is there a nicer way of doing such a "try-fallback" parsing?







dart flutter dynamic-typing






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 8 at 8:40









Magnus WMagnus W

4,37553164




4,37553164







  • 1





    I don't think there is.

    – Günter Zöchbauer
    Mar 8 at 8:43












  • 1





    I don't think there is.

    – Günter Zöchbauer
    Mar 8 at 8:43







1




1





I don't think there is.

– Günter Zöchbauer
Mar 8 at 8:43





I don't think there is.

– Günter Zöchbauer
Mar 8 at 8:43












1 Answer
1






active

oldest

votes


















0














You can abstract the operation into a function like



int intOrStringValue(dynamic o) 
if (o is String) o = int.tryParse(o);
return o ?? 0;



or



int intOrStringValue(dynamic o) =>
(o is String ? int.tryParse(o) : o) ?? 0;


It gets more readable when you don't repeat the map['maxposts'] expression throughout the logic.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55059480%2fparse-dynamic-as-int-or-fallback-to-a-default-value%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You can abstract the operation into a function like



    int intOrStringValue(dynamic o) 
    if (o is String) o = int.tryParse(o);
    return o ?? 0;



    or



    int intOrStringValue(dynamic o) =>
    (o is String ? int.tryParse(o) : o) ?? 0;


    It gets more readable when you don't repeat the map['maxposts'] expression throughout the logic.






    share|improve this answer



























      0














      You can abstract the operation into a function like



      int intOrStringValue(dynamic o) 
      if (o is String) o = int.tryParse(o);
      return o ?? 0;



      or



      int intOrStringValue(dynamic o) =>
      (o is String ? int.tryParse(o) : o) ?? 0;


      It gets more readable when you don't repeat the map['maxposts'] expression throughout the logic.






      share|improve this answer

























        0












        0








        0







        You can abstract the operation into a function like



        int intOrStringValue(dynamic o) 
        if (o is String) o = int.tryParse(o);
        return o ?? 0;



        or



        int intOrStringValue(dynamic o) =>
        (o is String ? int.tryParse(o) : o) ?? 0;


        It gets more readable when you don't repeat the map['maxposts'] expression throughout the logic.






        share|improve this answer













        You can abstract the operation into a function like



        int intOrStringValue(dynamic o) 
        if (o is String) o = int.tryParse(o);
        return o ?? 0;



        or



        int intOrStringValue(dynamic o) =>
        (o is String ? int.tryParse(o) : o) ?? 0;


        It gets more readable when you don't repeat the map['maxposts'] expression throughout the logic.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 8 at 9:43









        lrnlrn

        11.3k1527




        11.3k1527





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55059480%2fparse-dynamic-as-int-or-fallback-to-a-default-value%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

            Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

            Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved