The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Открыт код Luau, варианта языка Lua с проверкой типов, opennews (??), 04-Ноя-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


37. "Открыт код Luau, варианта языка Lua с проверкой типов"  +1 +/
Сообщение от keydon (ok), 04-Ноя-21, 13:56 
Как минимум в bash уже давно есть (но на фоне остальных болячек это как мертвому припарка).
Ответить | Правка | Наверх | Cообщить модератору

46. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от n00by (ok), 04-Ноя-21, 14:22 
А в bash разве есть какие-либо типы данных, помимо строк? https://www.opennet.ru/docs/RUS/bash_scripting_guide/x1705.html
Ответить | Правка | Наверх | Cообщить модератору

51. "Открыт код Luau, варианта языка Lua с проверкой типов"  +1 +/
Сообщение от Аноним (51), 04-Ноя-21, 15:34 
https://tldp.org/LDP/abs/html/declareref.html
Ответить | Правка | Наверх | Cообщить модератору

53. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от Аноним (28), 04-Ноя-21, 16:01 
Это динамическая.
Ответить | Правка | Наверх | Cообщить модератору

54. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от n00by (ok), 04-Ноя-21, 16:06 
Вот ещё интересная ссылка: man 3 environ

А вот как внутри bash, если я правильно нашёл:


typedef struct variable {
  char *name;            /* Symbol that the user types. */
  char *value;            /* Value that is returned. */
  char *exportstr;        /* String for the environment. */
  sh_var_value_func_t *dynamic_value;    /* Function called to return a `dynamic'
                   value for a variable, like $SECONDS
                   or $RANDOM. */
  sh_var_assign_func_t *assign_func; /* Function called when this `special
                   variable' is assigned a value in
                   bind_variable. */
  int attributes;        /* export, readonly, array, invisible... */
  int context;            /* Which context this variable belongs to. */
} SHELL_VAR;

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

80. "Открыт код Luau, варианта языка Lua с проверкой типов"  +/
Сообщение от keydon (ok), 04-Ноя-21, 23:47 
Это больше философский вопрос. Технически  нет - все строки. Но наличие у переменных атрибутов позволяет ограничивать диапазон значений при определении(без встроенной возможности аннотаций и проверки типов), что при достаточной фантазии можно считать недоношенной типизацией (на что недвусмысленно намекает название функции typeset).
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

82. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от Михрютка (ok), 05-Ноя-21, 00:48 
фиг там. корншелловский typeset - чистой воды printf

>>>наличие у переменных атрибутов позволяет ограничивать диапазон значений при определении

isdigit() -i ограничивает.

на что это, по вашему, похоже - на "диапазон значений"?

typeset -i a=10000000000000000000
typeset -i b=-999999999999999999
echo $((a+b));
>9000000000000000001

typeset -i a=10000000000000000000
typeset -i b=-9999999999999999999
echo $((a+b));
>1

typeset -i a=100000000000000000000
typeset -i b=-9999999999999999999
echo $((a+b));
>-2233720368547758079

typeset -i a=100000000000000000000
typeset -i b=-99999999999999999999
echo $((a+b));
>1

typeset -i a=1000000000000000000000
typeset -i b=-99999999999999999999
echo $((a+b));
>-3890459611768029183

Ответить | Правка | Наверх | Cообщить модератору

89. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от n00by (ok), 05-Ноя-21, 06:47 
Похоже, что проводить арифметические операции непосредственно над текстовым представлением было бы не только быстрее (исключаются умножения при конверсии), но и корректнее.
Ответить | Правка | Наверх | Cообщить модератору

94. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от InuYasha (??), 05-Ноя-21, 11:05 
declare -i iNumBoobs=2;
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

104. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от n00by (ok), 05-Ноя-21, 12:59 
> declare -i iNumBoobs=2;

  /* If this variable has had its type set to integer (via `declare -i'),
     then do expression evaluation on it and store the result.  The
     functions in expr.c (evalexp()) and bind_int_variable() are responsible
     for turning off the integer flag if they don't want further
     evaluation done.  Callers that find it inconvenient to do this can set
     the ASS_NOEVAL flag.  For the special case of arithmetic expression
     evaluation, the caller can set ASS_NOLONGJMP to avoid jumping out to
     top_level. */

Определение SHELL_VAR cм. в #54

Т.е. значение хранится в виде текстовой строки, но иногда его просят покрякать как утка, и потому оно как бы немножко утка.

Ответить | Правка | Наверх | Cообщить модератору

81. "Открыт код Luau, варианта языка Lua с проверкой типов"  –1 +/
Сообщение от Михрютка (ok), 05-Ноя-21, 00:40 
господа, окститесь.

в баше (и ksh, не знаю как у других) нет и не было типизации.

форматирование строчной переменной - сколько угодно.

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру