Object :
typeof instance === "object"
. Special non-data but Structural type for any constructed object instance also used as data structures: newObject
, newArray
, newMap
, newSet
, newWeakMap
, newWeakSet
, newDate
and almost everything made with new keyword;Source: JavaScript data types and data structures - JavaScript | MDN
This quote shows us that equivalent/similar data types across languages are implemented and therefore grouped differently which means that we can’t use exactly same naming. Different naming forces new developer to think: Why it's named like that?
and that ends up with looking for it’s definition.
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
Having in mind that both destructure
and unpack
are used only for arrays
and objects
it’s confusing to use them in Elixir
for other data types like for example string
. Destructure
naming could also be confusing for newbies as we have structs
.
Destructure
and unpack
antonyms suggest that we have something structured
or packed
which is not always true. While it’s common to say that we are unpacking bits from string
still we can’t say that we are unpacking
something from literal
like for example: 5 = variable
.
Generally i.e. for all data types I prefer to think about some connection of assignment
, fetch
, pattern
and take
words (which are most common) like taking by pattern
or something like that.
@AstonJ Considering your Erlang
code we can say that we are taking
items: rectangle
, Width
and Height
by 3-element tuple pattern of Rectangle
variable. What do you think about it?