моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Предисловие
Ссылка на эту статью взята из:Типы данных Lua | Учебник для новичков (runoob.com)
Для тех, кто хочет узнать больше, пожалуйста, перейдите по ссылке выше:
- print(type("Hello world")) --> string
- print(type(10.4*3)) --> number
- print(type(print)) --> function
- print(type(type)) --> function
- print(type(true)) --> boolean
- print(type(nil)) --> nil
- print(type(type(X))) --> string
- print(type(Y)) -->nil
- print(type('Y')) -->string
Вы можете видеть, что тип (Y), который мы здесь выводим, является нулевым типом. Почему? Вам будет продемонстрирован следующий ноль (пустой).
Тип nil представляет тип, который не имеет допустимого значения. Он имеет только одно значение — nil. Например, печать переменной без присвоения выведет нулевое значение:
Следующее: все выходные типы трех переменных, которым не присвоены начальные значения, равны нулю.
- tab1 = { key1 = "val1", key2 = "val2",
- "val3","val4",key3 = "val5" }
- for k, v in pairs(tab1) do
- print(k .. " - " .. v)
- end
- print("=========直接输出=============")
-
-
- tab1.key1 = nil
- for k, v in pairs(tab1) do
- print(k .. " - " .. v)
- end
- print("============删除key1后==========")
-
-
-
- tab1.key3 = nil
- for k,v in pairs(tab1) do
- print(k.. " - "..v)
- end
- print("=========删除key3后============")
-
Для глобальных переменных и таблиц nil также имеет эффект «удаления». Присвоение значения nil глобальным переменным или переменным в таблице эквивалентно их удалению.
type(X)==nil приводит кЛОЖЬПричина в том, что type(X) по сути является возвращаемой строкой «nil», которая является строковым типом:
Логический тип имеет только два необязательных значения: true (истина) и false (ложь) Lua рассматривает false и nil как false, а все остальное также является истиной. Число 0 также является истиной.
- print(type(true))
- print(type(false))
- print(type(nil))
-
- if false or nil then
- print("至少有一个是 true")
- else
- print("false 和 nil 都为 false")
- end
-
- if 0 then
- print("数字 0 是 true")
- else
- print("数字 0 为 false")
- end
Lua по умолчанию имеет только один числовой тип — тип double (двойной точности) (тип по умолчанию можно изменить в luaconf.h), следующие методы записи рассматриваются как num.
При выполнении арифметических операций над числовой строкой Lua попытается преобразовать числовую строку в число:
В Lua создание таблиц осуществляется с помощью «конструктивных выражений». Простейшим сконструированным выражением является {}, которое используется для создания пустой таблицы. Вы также можете добавить некоторые данные в таблицу и инициализировать ее напрямую:
Таблица в Lua на самом деле представляет собой«Ассоциативный массив»(ассоциативные массивы), индекс массива может быть числом или строкой.
Таблица не будет иметь фиксированную длину. При добавлении новых данных длина таблицы будет автоматически увеличиваться. Неинициализированные таблицы будут равны нулю.
В Lua функции рассматриваются как «значения первого класса».
В Lua самым важным потоком является сопрограмма. Он похож на поток и имеет собственный независимый стек, локальные переменные и указатель инструкций.
Глобальные переменные и большинство других вещей могут использоваться совместно с другими сопрограммами.Разница между потоками и сопрограммами: потоки могут запускаться несколько раз одновременно, но сопрограммы могут запускаться только одну в любой момент времени, а работающая сопрограмма будет приостановлена только тогда, когда она приостановлена.
пользовательские данные — это тип определяемых пользователем данных, используемый для представления типа, созданного приложением или библиотекой языка C/C++.
Вы можете хранить любые данные любого типа данных C/C++ (обычно структуру и указатель) в переменной Lua и вызывать ее.