Вопросы по теме 'crystal-lang'
Как выполнить код из строковой переменной в Crystal?
Мне нравится eval в Ruby, потому что он работает довольно просто:
eval("puts 7 * 8") # => 56
Что такое эквивалент eval в Crystal? Я знаю, что мы можем сделать что-то подобное с макросом:
macro eval(code)
{{code.id}}
end...
952 просмотров
schedule
11.06.2024
Как указать типы данных для парсинга JSON?
У меня есть ответ JSON, который представляет собой массив хешей:
[{"project" => {"id" => 1, "name" => "Internal"},
{"project" => {"id" => 2, "name" => "External"}}]
Мой код выглядит так:
client = HTTP::Client.new(url,...
2884 просмотров
schedule
16.08.2022
Почему Object не может быть типом аргумента для объекта Proc
У меня такой код:
p = ->(x : Object) { x }
puts p.call(3)
и когда я его компилирую, я получаю такое исключение:
пока нельзя использовать как тип аргумента Proc, используйте более конкретный тип
может кто-нибудь объяснить мне,...
133 просмотров
schedule
15.03.2023
Может ли тип переменной в языке Crystal быть ограничен классами, которые наследуются от одного класса
Я имею в виду:
class Foo; end
class Bar < Foo; end
class Cux < Foo; end
Можно ли ограничить тип переменной классами, унаследованными от Foo , без объединений, например, x : Foo+ ?
94 просмотров
schedule
13.06.2023
Как выполнить сценарий оболочки в Crystal при захвате вывода?
Я хочу выполнить сценарий оболочки при обработке вывода stdout и stderr. В настоящее время я выполняю команды, используя Process.run , с shell=false и тремя каналами для stdin, stdout и stderr. Я создаю волокна для чтения из stdout и stderr и...
3314 просмотров
schedule
08.07.2023
Есть ли простой способ отсортировать массив в Crystal?
Я новичок в Crystal, и мне интересно учиться и работать. Какой простой и быстрый способ отсортировать массив?
908 просмотров
schedule
03.08.2023
Кристалл: Как мне найти SHA256-хэш двоичного значения?
Я новичок в Кристалле. Я хотел бы попытаться найти хэш SHA256 шестнадцатеричной строки. Мне удалось кое-что заработать:
sha256 = OpenSSL::Digest.new("sha256")
puts sha256.update("abcd")
Но я не уверен, как поместить двоичное значение...
1631 просмотров
schedule
08.06.2022
Как изменить HTTP::Response после того, как он был записан в
Я пытаюсь написать некоторые инструменты для Crystal (в частности, Kemal), где я могу увидеть, является ли тип содержимого ответа text/html , и изменить тело ответа, которое уже было записано в HTTP::Response , прежде чем оно будет отправлено...
124 просмотров
schedule
22.12.2022
Кристалл возвращает отрицательное число при использовании .. между двумя положительными
Как ни странно, Crystal выводит отрицательные числа. Код, который я использую,
(1..10000000000).each do |num|
if num % 10000000 == 0
if num < 0
puts "error #{num}"
exit
else
puts num
end
end
end
Это...
87 просмотров
schedule
19.02.2022
Кристалл проверяет, есть ли подкласс списка классов
Итак, я хочу проверить, является ли возникшая ошибка подклассом списка конкретных исключений во время выполнения. Пользователи могут передать массив исключений во время выполнения.
Я думал, что просто использую is_a? , и он работает, как...
164 просмотров
schedule
01.12.2022
Итерировать по массиву и вернуть себя
Этот код: p [1, 2].each{ "foo" } производит nil , в то время как я хочу, чтобы он поместил [1, 2] после итерации. Как сделать в кристалле?
605 просмотров
schedule
17.01.2024
Crystal .cycle Recycle после завершения цикла
так что в моем случае
def dynamic_data()
data = [] of String
# some data from db
# data << db["somekey"].to_s
return data
end
dynamic_data().cycle do |d|
# some stuff
puts d
end
Мои данные достигают более 500 строк и будут...
71 просмотров
schedule
13.07.2023
Введите псевдоним и хэш в качестве параметра метода
Я пытаюсь создать инициализатор для класса, который получает параметр Hash as. Хеш - это хеш {String => Type}, который может быть вложенным. Я получаю сообщение об ошибке при запуске этого кода:
#file: types.cr
class Types
alias Type = Nil |...
372 просмотров
schedule
14.09.2023
Собственный графический интерфейс Crystal
Есть ли у Crystal собственные библиотеки GUI?
Уже есть несколько осколков, которые реализуют известные библиотеки, такие как QT или SFML (на самом деле все, что связано с C), но мне нужна нативная библиотека, так как я не хочу иметь никаких...
590 просмотров
schedule
02.05.2023
Почему BigFloat.to_s недостаточно точен?
Я не уверен, что это ошибка. Но я играл с big и не могу понять, почему этот код работает так:
https://carc.in/#/r/2w96
Код
require "big"
x = BigInt.new(1<<30) * (1<<30) * (1<<30)
puts "BigInt:...
150 просмотров
schedule
17.05.2022
Как создать HMAC в crystal-lang
См. документацию по OpenSSL::HMAC .
Я пытаюсь это:
require "openssl"
puts OpenSSL::HMAC.hexdigest(:sha256, "secret key", "data")
и я получаю эту ошибку:
неопределенная константа OpenSSL::HMAC
Другие методы OpenSSL работают...
219 просмотров
schedule
31.03.2023
Почему Кристалл считает это ложным?
На практике я хочу создать функцию, возвращающую первый индекс символа в строке. Функция принимает два аргумента: строку и символ, для которых требуется получить индекс. Я перебираю строку, чтобы сопоставить ее с предоставленным символом. Я печатаю...
86 просмотров
schedule
09.05.2022
запуск команд оболочки на языке кристалла и захват вывода
Я привык использовать open3 для запуска команд в Ruby. Поскольку похоже, что в crystal-lang нет эквивалентной библиотеки, я запутался вот что:
def run_cmd(cmd, args)
stdout_str = IO::Memory.new
stderr_str = IO::Memory.new...
1021 просмотров
schedule
14.07.2022
простой пример использования API Google-People
я впервые использую Google API, и у меня возникли проблемы с api google-people, может ли кто-нибудь здесь объяснить, какие данные заголовка / тела необходимы для аутентификации (я использую https://crystal-lang.org/api/latest/OAuth2.html ) и,...
357 просмотров
schedule
27.02.2022
Как переменные экземпляра класса реализованы в Crystal?
Если у меня есть экземпляр A , реализованы ли переменные экземпляра как указатели? Другими словами, доступны ли переменные экземпляра по ссылке даже при использовании структур?
class A
@title = "the title"
@my_val = MyStruct.new
end
131 просмотров
schedule
28.03.2024