You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Typeof

Материал из EverybodyWiki Bios & Wiki
Перейти к:навигация, поиск

Ошибка скрипта: Модуля «Unsubst» не существует. typeof (также typeOf или TypeOf) — это оператор, предоставляемый некоторыми языками программирования для определения типа данных переменной. Это полезно для создания программ, которые должны принимать несколько типов данных без указания самого типа.

В языках, которые поддерживают полиморфизм и преобразование типов, может иметь два варианта реализации. В некоторых языках, таких как Visual Basic[1], оператор typeof возвращает динамический тип объекта. В таких языках этот оператор получает информацию в runtime. В других языках, таких как C#[2] или D[3] и, в некоторой степени, в Си (как часть нестандартного расширения),[4][5] оператор typeof возвращает статический тип операнда. Эти языки могут иметь другие операторы для получения информации в runtime, такие как typeid.

Примеры[править]

В нестандартном (GNU) расширении языка программирования Си, typeof может быть использован, например, для определения макроса max:

# define max(a,b) ({ typeof (a) _a = (a); typeof (b) _b = (b); _a > _b ? _a : _b; })

В C#:

// Возвращает является ли объект целым числом
public static bool IsInteger(object o) {
  return ( o.GetType() == typeof(int) );
}

В JavaScript:

function isNumber(n)
{
  return ( typeof n === 'number' );
}

В TypeScript:[6]

function (param: typeof existingObject) { ... }
let newObject: typeof existingObject;

См. также[править]

Примечания[править]

  1. https://msdn.microsoft.com/en-us/library/0ec5kw18(VS.80).aspx Архивная копия от 28 ноября 2016 на Wayback Machine «TypeOf Operator (Visual Basic)» in MSDN
  2. https://msdn.microsoft.com/en-us/library/58918ffs(VS.80).aspx Архивная копия от 10 сентября 2016 на Wayback Machine «typeof (C#)» in MSDN
  3. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  4. https://gcc.gnu.org/onlinedocs/gcc/Typeof.html Архивная копия от 9 мая 2022 на Wayback Machine «Typeof» in Using the GNU Compiler Collection
  5. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  6. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.


This article "Typeof" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Typeof. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[править]