Tom Mos
Tom Mos

Reputation: 5

What is meaning of the syntax %||%?

I'm trying to create a dynamic UI, so i used this code

output$col <- renderUI({
    map(col_names(), ~ textInput(.x, NULL, value = isolate(input[[.x]])) %||% "")
  })

from :

https://mastering-shiny.org/action-dynamic.html#multiple-controls

My question is basically, what is meaning of the syntax %||% ?

Upvotes: 0

Views: 65

Answers (2)

mnist
mnist

Reputation: 6956

The help page of sheds light into it:

?rlang::`%||%`

Description
This infix function makes it easy to replace NULLs with a default value.
It's inspired by the way that Ruby's or operation (||) works.

Usage
x %||% y

Arguments
x, y    
If x is NULL, will return y; otherwise returns x.

It is similar to a coalesce function. Basically, whenever the input is NULL, that means it is not (yet) available, an empty tring is assigned rather than NULL. This is desireable because this is rendered and displayed as an empty value should. NULL would be shown like an error massage

Upvotes: 1

MrFlick
MrFlick

Reputation: 206232

The %||% comes from rlang. You can find it on the ?"op-null-default" help page. From the documentation

This infix function makes it easy to replace NULLs with a default value. It's inspired by the way that Ruby's or operation (||) works.

Basically it returns the second value if the first is NULL.

Upvotes: 0

Related Questions