Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
crystalを少し触ったので、ここに書いとく 環境 crystal 0.25.1 Zorin OS 12.3 概要 rubyやってるからついでにcrystalもやってみようと思って触ってきました。 多分今後、crystalに触れる事は少なくなるので、ここに感じた事など書き留めておきます。 crystalとは ruby風の文法で記述できる静的型付け言語です。 LLVMを使用しており高速であり、ベンチマークテストでは、よくTOP10に食い込んでます。 crystalの基本文法はこのサイトで、学習できます。 もっと詳しく知りたい人は公式サイトを見てください。 型の指定 静的型付けだけあって型はしっかりかけます。 下の例では、引数であるnumにInt32型を指定し、渡す値もInt32を使っています。
Mint という、 SPA のための新しいフレームワークがあり、まとめてみた。 2018/07/25 現在では、 Alpha Stage である。 いつかちゃんと使ってみたい。 特徴 SPA に特化している 一つのファイル (モジュール) に、 HTML / CSS / JS を書く React + CSS Module っぽいかも Store をデフォルトでサポート ルーティングもデフォルトでサポート 関数型っぽい書き方のサポート Pipe 構文 Case 式 静的な型( record と呼んでいる)サポート Crystal で書かれており、JSに依存していないっぽい? package.json の代わりに mint.json 依存が少ない 全て Built In なので、 なんとかloader みたいな概念が無いっぽい パッケージマネージャなどの拡張はこれからのよう 例 HTML を出
解説 Crystalはコンパイル時に自動的に src/prelude.cr を読み込む。 このファイルの中で標準ライブラリを読み込んでいるため、CrystalではRubyのようにスラスラとコードがかけるようになっている。 一方、このファイル内で大量の標準ライブラリを読みこんでいるせいで、Crystalのバイナリは実際には使ってない機能もバイナリに含めてしまっている。 正確に言えば、コンパイラが使わないと分かっているコードは含まれないのだが、シグナルやスレッド等、使うかわからないコードはバイナリに含まれてしまう。 例にあるように、ビルドオプションに --prelude="empty" を加えると src/prelude.cr を読み込む代わりに src/empty.cr を読み込むようになる。このファイルではごくわずかなライブラリのみを読み込んでいるため、生成されるバイナリサイズが小さくなる
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "crystal", "args": [ "build", "${workspaceRoot}/src/${workspaceRootFolderName}.cr" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "panel": "new" }, "problemMatcher": { "owner": "crystal", "
「配列」っぽい型に続いて「っぽい型」シリーズ第二弾(おそらく打ち止め)です。 上の記事ではArrayっぽい型をいくつかご紹介しました。Arrayほどではないにしろ,Arrayと並ぶコレクション界の雄「Hash」にも1つだけ「っぽい型」が存在します。 NamedTuple(**T) NamedTupleは,NamedTuple.fromにHashを与えて生成できるほか,{key: value, ...}というリテラル構文を持っています。後者の構文は,RubyではシンボルをキーとしたHashのリテラル構文ですが,Crystalでは{:key => value}と{key: value}が異なる型(前者はHash,後者はNamedTuple)のオブジェクトになるので注意が必要です。 # 両方とも同じ結果 p named_tuple = NamedTuple(name: String, age:
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これは何 Crystal 言語を使って自社のソーシャルサービス用にレコメンドを実運用したのでその経験をシェアします。過去にも一度触ったことは合ったのですがその時は言語仕様が大きく変わる時期だったのでしばらく時間をおいていましたが予定されていた大きな変更は終わったようだったので久しぶりに再度挑戦してみました。 Crystal 言語とは この記事をクリックした人には説明が不要かと思いますが Crystal は Ruby とよく似たシンタックスを持つ静的型付きコンパイル言語です。LLVM上で動き、以下のような特徴を持っています。 高速 省メモ
この記事は Crystal Advent Calendar 2015 の16日目の記事です 昨日の記事は @pine613 さんの 『 東京 Crystal 勉強会 #3 in 恵比寿 』 を開催します!!!! でした。1/22 に第三回を開催とのことでぜひ参加したいのですが、3日後の 1/25 が修論提出日だったりします。善処できるよう努力します。 さて、今回は Crystal で AWS の API を叩いてみた、というお話です。 Crystal から AWS を触りたい 普段 AWS なインフラやってる人間なので、Crystal で AWS を操作できないものかと考えました。やっぱネイティブバイナリ吐けるっていうのはツール作る人間にとって魅力的なんですよ… Ruby, Python, JavaScript, Java, Go, ... といったいわゆるメジャーな言語から AWS を操
これは,Crystal Advent Calendar 2015 12月7日分の記事です。 はじめに Ruby の文法に強くインスパイアされ,シンプルなものであれば Ruby スクリプトがそのまま動いてしまうこともある Crystal ですが,それだけに思わぬところで Ruby の流儀が通用しなくて戸惑うことがあります。 例えば,暗黙の文字列変換を指定しようとして#to_sをオーバーライドしても予想通りの動きをしないとか,初期化のタイミングによってインスタンス変数がコンパイラにnilableだと判断されるなどなど。 たいていの問題はドキュメントやAPIリファレンスをじっくり読むと解決したりするのですが,縁あって「Crystal Advent Calendar 2015」にお誘いいただいたので,個人レベルで数年に渡って日曜プログラミングとしてRubyと付き合ってきた人間が,Crystal で
追記あり Crystal Advent Calendar 2015のネタを書くにあたって,改めてドキュメントやAPIリファレンスを読み返してみると,クラス定義周りのマクロが非常に充実していることに気づいたので,備忘録代わりにまとめてみました。 はじめに 自作クラスを定義しようとすると,お約束のように定義することになるメソッドがいくつか存在します。 インスタンス変数に対するアクセサなどはRubyでも専用の書式が用意されていましたが,Crystalではそれだけでなく等価演算子 #==,Hashキーの同一性チェックに使用される#hash,さらにはインスタンス変数へのメソッドの移譲についてまでマクロが用意されています。 アクセサ定義 アクセサ定義系のマクロには,対象とするインスタンス変数名をシンボルリテラル(:name),文字列リテラル("name"),もしくは名前ベタ書き(name)で指定します
ここのところすっかりCrystalにどっぷりで,趣味に仕事にと汎用性のないCrystalのコードを書き散らかしているʕ•ᴥ•ʔAKJです。 とはいえ,普段は手元のMacBookでコードを書いて,それらを使うのは別のLinuxサーバ(複数)という環境のため,サーバ個別の機能はともかく共通部品をそれぞれのサーバへ展開するのが結構手間,という状況が出てきました。 CrystalにはRubyのGem(+Bundler)に相当するShardという仕組みが標準で用意されていて,GitHubなどで公開されている標準添付以外のライブラリを,自分のプロジェクトへ比較的簡単に追加することができるのですが,自作のライブラリをShardとして公開するのも比較的簡単に行うことができます。実際,crystal init lib で作成される雛形上にコードを書いて,GitHubに公開したらそれだけで別プロジェクトからS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く