sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Detect a Dimmension object without .typename

    Scheduled Pinned Locked Moved Developers' Forum
    22 Posts 7 Posters 604 Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • tbdT Offline
      tbd
      last edited by

      my mistake, i was wrong. if left side is false the right side doesn't get evaluated

      SketchUp Ruby Consultant | Podium 1.x developer
      http://plugins.ro

      1 Reply Last reply Reply Quote 0
      • J Offline
        Jim
        last edited by

        @unknownuser said:

        if left side is false the right side doesn't get evaluated

        This is my understanding also, but watch because the and operator is not the same as &&. I don't think and will shortcut.

        Hi

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          @jim said:

          but watch because the and operator is not the same as &&. I don't think and will shortcut.

          I did two more tests for this:

          
          def test3
          	if always_return_false and always_return_false
          		#...
          	end
          end
          
          def test4
          	if always_return_true and always_return_true
          		#...
          	end
          end
          
          

          Results:

          
          >> test3
          call always_return_false
          nil
          >> test4
          call always_return_true
          call always_return_true
          nil
          
          

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • thomthomT Offline
            thomthom
            last edited by

            Found what the difference between and and && is:

            @unknownuser said:

            The binary "and" operator will return the logical conjunction of its two operands. It is the same as "&&" but with a lower precedence

            Thomas Thomassen — SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply Reply Quote 0
            • AdamBA Offline
              AdamB
              last edited by

              @thomthom said:

              Found what the difference between and and && is:

              @unknownuser said:

              The binary "and" operator will return the logical conjunction of its two operands. It is the same as "&&" but with a lower precedence

              Well that explains something that I've been bitten by a few times..

              mask = mask or object.getmask
              

              assigns mask to itself and ors with the results of object.getmask()!! 😮

              I end up having to do:

              mask = (mask or object.getmask)
              

              What kind of madman would introduce such an operator?

              Actually the one that beats all for sheer insanity is ruby.h #define-ing fopen() to be something completely different calling some Ruby thing. What the!, Argggh...

              I've got some harsh language for Mr.Ruby when/if I meet him.

              Adam

              Developer of LightUp Click for website

              1 Reply Last reply Reply Quote 0
              • thomthomT Offline
                thomthom
                last edited by

                I think I've always used && and || so I've avoided such problems. But I have had unexpected behaviour when I used not instead of !. I used not some times simply because I thought it was the same thing - but not would read better.

                Looking at the table of Operator Precedence I can see how it all fits together now. http://www.techotopia.com/index.php/Ruby_Operator_Precedence

                Thomas Thomassen — SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

                1 Reply Last reply Reply Quote 0
                • AdamBA Offline
                  AdamB
                  last edited by

                  Sure, it lists them out.

                  But I see absolutely no compelling reason to have "Logical AND" differing from "Logical composition" wrt precedence.

                  What is the 'use case' for the 2 forms? Does anyone know?

                  Adam

                  Developer of LightUp Click for website

                  1 Reply Last reply Reply Quote 0
                  • tbdT Offline
                    tbd
                    last edited by

                    @adamb said:

                    What is the 'use case' for the 2 forms? Does anyone know?

                    maybe to play jokes like this :

                    
                    myvar = true and false
                    => false
                    myvar
                    => true
                    
                    

                    SketchUp Ruby Consultant | Podium 1.x developer
                    http://plugins.ro

                    1 Reply Last reply Reply Quote 0
                    • R Offline
                      RickW
                      last edited by

                      @adamb said:

                      I end up having to do:

                      mask = (mask or object.getmask)
                      

                      But now you know you can use

                      mask = mask || object.getmask
                      

                      It saves typing the parentheses... (FWIW)

                      RickW
                      [www.smustard.com](http://www.smustard.com)

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        Saves you typing even more if you type mask ||= object.getmask 😉

                        Thomas Thomassen — SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 2 / 2
                        • First post
                          Last post
                        Buy SketchPlus
                        Buy SUbD
                        Buy WrapR
                        Buy eBook
                        Buy Modelur
                        Buy Vertex Tools
                        Buy SketchCuisine
                        Buy FormFonts

                        Advertisement