Open main menu

Wikipedia β

The symbol underscore [ _ ] (also called underline, underbar, low line, or low dash) is a character that originally appeared on the typewriter and was primarily used to underline words. To produce an underlined word, the word was typed, the typewriter carriage was moved back to the beginning of the word, and the word was overtyped with the underscore character.

_
Underscore
Punctuation
apostrophe   '
brackets [ ]  ( )  { }  ⟨ ⟩
colon :
comma ,  ،  
dash ‒  –  —  ―
ellipsis   ...      
exclamation mark  !
full stop, period .
guillemets ‹ ›  « »
hyphen
hyphen-minus -
question mark  ?
quotation marks ‘ ’  “ ”  ' '  " "
semicolon ;
slash, stroke, solidus /  
Word dividers
interpunct ·
space     
General typography
ampersand &
asterisk *
at sign @
backslash \
bullet
caret ^
dagger † ‡
degree °
ditto mark
inverted exclamation mark ¡
inverted question mark ¿
note
number sign, pound, hash, octothorpe #
numero sign
obelus ÷
multiplication sign ×
ordinal indicator º ª
percent, per mil  % ‰
plus and minus + −
equals sign =
basis point
pilcrow
prime     
section sign §
tilde ~
underscore, understrike _
vertical bar, pipe, broken bar |    ¦
Intellectual property
copyright ©
sound-recording copyright
registered trademark ®
service mark
trademark
Currency
currency sign ¤

؋฿¢$֏ƒ£元 圆 圓 ¥ 円

Uncommon typography
asterism
hedera
index, fist
interrobang
irony punctuation
lozenge
tie
Related
In other scripts

This character is sometimes used to create visual spacing within a sequence of characters, where a whitespace character is not permitted (e.g., in computer filenames, email addresses, and in Internet URLs). Some computer applications will automatically underline text surrounded by underscores: _underlined_ will render underlined. It is often used in plain text-only media (IRC, instant messaging, classical Email) for this purpose. When the underscore is used for emphasis in this fashion, it is usually interpreted as indicating that the enclosed text is underlined (as opposed to being italicized or bold, which is indicated by /slashes/ or *asterisks*, respectively).

The underscore is not the same character as the dash character, although one convention for text news wires is to use an underscore when an em-dash or en-dash is desired, or when other non-standard characters such as bullets would be appropriate. A series of underscores [like ___-______ ] may be used to create a blank to be filled in on a form, although the resulting blank may have tiny gaps between each individual underscore. It is also sometimes used to create a horizontal line; other symbols with similar graphemes, such as hyphens and dashes, are also used for this purpose.

Contents

Unicode encoding and typingEdit

In Unicode, the character is encoded at U+005F _ LOW LINE (HTML _ · spacing character). The ASCII value of this character is 95. On the standard US or UK 101/102 computer keyboard it shares a key with the hyphen-minus (-) on the top row, to the right of the 0 key.

A similar Unicode character is U+2017 DOUBLE LOW LINE, which is an underscore with two horizontal lines instead of one.

DiacriticEdit

The underscore is used as a diacritic mark, "combining low line", in some languages of Egypt, some languages using the Rapidolangue orthography in Gabon, Izere in Nigeria, and indigenous languages of the Americas such as Shoshoni and Kiowa.

Usage in computingEdit

HistoryEdit

As early output devices (both CRT's and printers) could not produce more than one character at a location, it was not possible to underscore text, so common character sets of the 1950s had no underscore.[citation needed] IBM's EBCDIC character-coding system, introduced in 1964, added the underscore, which IBM referred to as the "break character." IBM's report on NPL (the early name of what is now called PL/I) leaves the character set undefined, but specifically mentions the break character, and gives RATE_OF_PAY as an example identifier.[1] By 1967 the underscore had spread to ASCII,[2] replacing the similarly-shaped left-arrow character (←) previously residing at code point 95 (5F hex) in ASCII-1963 (see also: PIP). C, developed at Bell Labs in the early 1970s, allowed the underscore as an alphabetic character.[3]

Underscore predates the existence of lower-case letters in many systems, so often it had to be used to make multi-word identifiers, as CamelCase (see below) was not available.

Programming conventionsEdit

Underscores inserted between letters is very common to make a "multi word" identifier in languages that cannot handle spaces in identifiers. This convention is known as "snake_case" (the other popular method is called camelCase, where capital letters are used to show where the words start).

An underscore as the first character in a id is often used to indicate internal implementation that is not considered part of the API and should not be called by code outside that implementation. Python uses this for private member variables of classes, this is common in other languages such as C++ even though those provide keywords to indicate that members are private. It is extensively used to hide variables and functions used for implementations in header files. In fact the use of single underscore for this became so common that C compilers had to standardize on a double leading underscore (for instance __DATE__) for actual built-in variables to avoid conflicts with the ones in header files. Python uses double underscore to "mangle" a private id to make it much harder to refer to it, and "PHP reserves all function names starting with __ as magical."[4]

A variable named with just an underscore often has special meaning. $_ or _ is the previous command or result in many interactive shells, such as those of Python, Ruby, and Perl. In Perl, @_ is a special array variable that holds the arguments to a function.

In some languages with pattern matching, such as Standard ML, Scala, OCaml, Haskell, and Wolfram Language, the pattern _ matches any value, but does not perform binding.

See alsoEdit

ReferencesEdit

  1. ^ NPL Technical Report (PDF). IBM. 1964. p. 23. Retrieved 2011-06-09. 
  2. ^ Fischer, Eric. "The Evolution of Character Codes, 1874-1968" (PDF). Retrieved 2016-11-16. 
  3. ^ Ritchie, Dennis (c. 1975). "C Reference Manual" (PDF). Retrieved 2011-06-09. 
  4. ^ [1]