# 注:本博客从此文开始进入连载模式,如对本博客的话题感兴趣 可以关注我。后期将有更多你感兴趣的内容,均会以专题连载的形式呈现。考虑到各位访客读者多半使用手机,文章会尽量压缩精简,点到即止 #

Crystal是静态编译型编程语言并且没有类似Java的虚拟机,用它编写的代码是直接以二进制文件的方式在系统本地运行的。所以,想要运行它所编写的程序通常情况下需要跟C/C 一样先编译成二进制再执行。

但是,如果你喜欢以交互方式(如ipython/ruby之类的解释型语言的命令行模式)使用Crystal的话, 你可以使用icr (github: crystal-community/icr) 。

安装crystal和icr都非常简单,请参考各自的项目官网。 Icr依赖crystal ,所以必须在安装完crystal之后安装。安装完之后在命令行执行 icr , 效果如下:

简单的编程实战指南(Crystal编程实践之一)(1)

icr交互界面

接下来你就可以在些做一些交互式的操作了。输入 puts “hi” ,体验一下。

编写第一个crystal程序”Hello crystal”

按下Ctrl c回到shell 命令行, 创建一个叫hello.cr的文件 ,内容为 puts “hello crystal” , 如下图

简单的编程实战指南(Crystal编程实践之一)(2)

编写第一个程序

此时可以执行一下程序,看下效果。使用crystal hello.cr 或crystal run hello.cr都可以。

简单的编程实战指南(Crystal编程实践之一)(3)

执行.cr源文件

现在,进行编译,crystal build hello.cr --release

编译完后查看目录中多出一个可执行的二进制文件 hello,执行之。

简单的编程实战指南(Crystal编程实践之一)(4)

执行二进制文件

这个小例子只用了一行代码,编写出了一个同C语言等效性能的程序。是不是集简洁与高效率于一身呢?

说明一下,生产环境打包请一定带上 --release参数 crystal会关闭debug信息,提升程序执行效率。

--link-flags -static表示采用静态编译,生成的二进制包将打包自带所有的依赖库,从而对外部库不会有任何依赖 可以做到随便丢哪台机器上都可以直接运行。如果不加,则程序默认依赖外部动态链接库, 我们看一下依赖:

简单的编程实战指南(Crystal编程实践之一)(5)

二进制文件依赖的库

Crystal指令的参数和用法还有很多包括交叉编译等等 使用起来都很简单,有兴趣请--help自行参考

本文到此结束,下节将浓缩的讲一下crystal语法,敬请关注。

,