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

            1928 у кіно

            Захаров Федір Захарович

            Ель Греко