Публикации по теме 'crystal-lang'


Как начать с Traces in Crystal
Вкратце: добавьте два примера кода, чтобы начать работать с трассировками. Кирк Хейнс ³ недавно начал работать над тем, чтобы сделать открытую телеметрию доступной для приложений Crystal ¹ . Я собрал примитивные примеры, помогающие понять распределенные трассировки. Первые промежутки на стандартный вывод OpenTelemetry поддерживает различные типы экспортеров (чтобы визуализировать и анализировать ваши трассировки и метрики, вам нужно будет экспортировать их в серверную часть)...

Руководство для начинающих по веб-сокетам в Elm and Crystal
Этот пост предназначен для людей, которые слышали о веб-сокетах, но никогда не имели возможности их использовать. До написания этого поста я был просто кем-то, кто слышал о веб-сокетах, но никогда не имел возможности их использовать. Введение в веб-сокеты Если вы не знаете, что такое веб-сокеты, визуализируйте их как трубу, идущую от сервера к клиенту. Сообщения могут отправляться через этот канал в любом направлении. Что мы подразумеваем под сообщениями ? Сообщения представляют..

Готово ли производство Crystal?
Вы слышали о Crystal Programming Language ? Прошло более трех лет с тех пор, как мы увидели его первую версию, но если вы не знакомы с ней, это статически типизированный, скомпилированный язык с синтаксисом в стиле Ruby. Это имеет как минимум три последствия: Со статическими типами мы с большей вероятностью обнаружим некоторые ошибки перед отправкой нашего кода (да, я смотрю на вас NoMethodError for nil:NilClass 🙄) Скомпилированные приложения должны работать почти так же..

Насколько быстро да в кристалле?
Сегодня я случайно наткнулся на эту ссылку, ища вопрос, который у меня был в Node. Сначала я не особо задумывался над этим, но читать дальше было немного интересно, так как, по всей видимости, это было сделано и на C, и на Go, и на JS, конечно же, это должно быть сделано и в Crystal :) Если серьезно, то это также была возможность лучше узнать некоторые функции Crystal, а именно Slices, и некоторые тесты по быстрому конвейерному выводу. Насколько быстро да в..

Вопросы по теме 'crystal-lang'

Получить путь к файлу для импорта файла во время компиляции
Если у меня есть файл, который должен потребоваться для других файлов, можно ли получить абсолютный путь к файлу, для которого он требуется? Итак, если lib_file.cr имеет макрос, который должен вызываться app_file.cr , который его импортировал,...
202 просмотров
schedule 05.09.2021

Сбой сборки Crystal из-за ошибки компоновщика
Я только что попытался запустить простой HTTP-сервер из языковой документации. Программа выдает ошибку. /usr/bin/ld: cannot find -lssl collect2: error: ld returned 1 exit status Error: execution of command failed with code: 1: `cc -o...
266 просмотров
schedule 09.09.2021

Как ограничить тип классом интерфейса, а не экземпляром этого интерфейса?
Учитывая следующий интерфейс в модуле: module Action abstract def perform end Я хотел бы использовать его для создания экземпляров различных классов, которые его реализуют: class Run include Action def perform puts "run!"...
143 просмотров
schedule 19.09.2021

Crystal Необработанное исключение в spawn / fork: невозможно выделить память
Я продолжаю сталкиваться с этой ошибкой кристаллического компилятора, и в настоящее время я не вижу никакого обходного пути, кроме перезагрузки моего компьютера. Я подал здесь проблему. crystal$ crystal build main.cr Unhandled exception in...
98 просмотров
schedule 21.10.2021

Как в Crystal узнать, является ли файл текстовым или двоичным?
Если у вас есть 2 файла, один текстовый, а другой двоичный, можно ли с помощью Crystal определить, какой файл является текстовым, а какой двоичным?
127 просмотров
schedule 23.09.2021

Hash.includes? дает странный результат в кристалле
Я пытаюсь написать Crystal-эквивалент этого кода Python: test_hash = {} test_hash[1] = 2 print(1 in test_hash) Это печатает True, потому что 1 - один из ключей dict. Вот код Crystal, который я пробовал: # Create new Hash test_hash =...
112 просмотров
schedule 03.12.2021

Можно ли получить IP-адрес входящего подключения к веб-сокету?
Мой сервер websocket работает следующим образом: ws_hdl = WebSocketHandler.new do |ws| # here we should determine the IP address of an incoming connection end srv = Server.new ws_hdl srv.listen("0.0.0.0", 8080) Можно ли получить...
849 просмотров
schedule 18.11.2021

Как прочитать файл в Crystal?
Я недавно познакомился с Crystal, проработав какое-то время рубистом, и, похоже, я ничего не могу найти о классе File. Я хочу открыть и прочитать файл, но возникает ошибка. file = File.open("ditto.txt") file = file.read...
984 просмотров
schedule 07.11.2021

Как получить atime и ctime файла (Crystal-lang)
(здесь новичок). Попытка получить последнее время_доступа и время_создания файла. Таким образом, я нашел, как получить время модификации. File.info("foo").modification_time но не могу найти ничего для двух других. (Используется...
41 просмотров
schedule 23.10.2021

Вызов методов динамически (Crystal-lang)
Я понимаю, что это может быть дубликат метода Любого эквивалента метода public_send в Ruby? . Я хотел бы объяснить, что делаю, и, возможно, кто-нибудь сможет посоветовать. Я портировал приложение Ruby в течение последних нескольких дней, чтобы...
787 просмотров
schedule 14.10.2021

сужение типа не работает, если тип указан?
class Foo def initialize(@foo : String | Nil) end def foo @foo end end a = Foo.new "213" if !a.foo.nil? puts a.foo, typeof(a.foo) end получить результат 213 (String | Nil) но не следует ли сужать тип a.foo до String? Это...
46 просмотров
schedule 13.11.2021

Отражение времени компиляции над членами типа
Я хотел бы написать макрос, который позволит мне выполнять некоторые операции с каждым атрибутом записи, например десериализовать строку CSV в экземпляр записи с правильным приведением типов. С чего мне начать?
58 просмотров
schedule 13.09.2021

Как читать все элементы из канала, когда вы не знаете их фактическое количество
Я пытаюсь реализовать сканер, который посещает какой-то URL-адрес, собирает из него новые относительные URL-адреса и создает отчет. Я пытаюсь сделать это одновременно, используя волокна и каналы Crystal, например: urls = [...] # of String...
67 просмотров
schedule 27.10.2021

Уточнение типа в кристалле из податливых блоков
Я использовал Enumerable #select (& block) , чтобы попытаться уточнить массив до элементов определенного типа с помощью arr.select { |el| el.is_a?(Bar) } , но это не сработало. Затем я увидел Enumerable # select (type) , и это сработало:...
59 просмотров
schedule 26.09.2021

Как обрабатывать исключение волокна за пределами волокна?
Иногда вам нужно работать с необслуживаемыми, старыми, грязными, огромными библиотеками, которые могут быть опасны для нашей программы. Есть ли лучшие практики для безопасного выполнения этого кода? Недавно я обнаружил (вероятно, на уровне моих...
112 просмотров
schedule 08.09.2021

Почему JSON :: Builder не использует модификатор with obj yield?
Crystal позволяет использовать ключевое слово with для улучшения DSL. Но в своей стандартной библиотеке он не используется для JSON :: Builder, пример из документации выглядит так: JSON.build do |json| json.object do json.field "name",...
39 просмотров
schedule 22.02.2022

Никакая перегрузка не соответствует 'Slice (UInt8) # +' с типом Slice (UInt8) при запуске кода
Я новичок в Crystal и столкнулся с ошибкой no overload matches 'Slice(UInt8)#+' with type Slice(UInt8) при запуске следующего кода, require "openssl" NAME = "Boy" cipher = OpenSSL::Cipher.new("AES-256-CBC") cipher.encrypt key =...
57 просмотров
schedule 02.03.2022

Сочетание именованных аргументов для Crystal
В приведенном ниже коде необходимо продублировать именованные аргументы, есть ли способ сократить выражение? struct Figure getter id : String getter hash : String getter title : String def initialize(@id, @hash, @title) end...
40 просмотров
schedule 01.03.2022

Получение первого элемента пустого массива
Учитывая массив, содержащий ноль или один элемент, как мне вернуть первый элемент или ноль? У меня есть рабочий код, но он не очень изящный: class Category < ActiveRecord::Model adapter sqlite table_name "categories" primary id...
443 просмотров
schedule 17.03.2022

Тестирование непубличных маршрутов приводит к ошибке KeyError
Я новичок в Crystal и Amber, и у меня проблема с тестированием непубличных маршрутов. Я использовал генератор аутентификации Amber, а затем создал основу для объекта Job и добавил связанные маршруты в блок routes: auth. Когда я открываю браузер и...
99 просмотров