Window中Ruby开发环境搭建
Window中Ruby开发环境搭建
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言, 是一种类似于 Python 和 Perl 的脚本语言。在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,1995年12月正式公开发布。你可以用在线版体验下,在线Ruby IDE网址:
https://www.jdoodle.com/execute-ruby-online/:
界面如下:
DevKit可用于编译那些gem提供的c或c++的源代码。它本身被编译为了exe,安装的时候会找到ruby的目录,然后修改添加一些文件。这样,在安装那些需要编译的gem时,就直接搞定了。有了devkit之后,你的ruby中便具有了一个mingw32的本地编译环境,而且这个本地编译环境是自动调用的。一般下载带Devkit的Ruby。
Window 系统下,我们可以使用 RubyInstaller 来安装 Ruby 环境,下载地址为:https://rubyinstaller.org/downloads/
我下载使用的是Ruby+Devkit 2.6.5-1 (x64)
安装比较简单,可参照
https://blog.****.net/qq_38161040/article/details/84205367
安装后,在开始菜单中可看到:
通过在命令行cmd中输入ruby -v命令验证,方法:
同时按下 和R键,打开运行窗口:
输入cmd 回车或单击“确定”按钮
在cmd中输入ruby -v 回车(即按下Enter键)
在cmd中输入ruby -help 回车 ,和看到ruby命令概述:
安装成功后,可以实践了。
irb工具
irb是一个 shell——一个交互式 Ruby 会话(Session) 工具。
在 irb shell 内,您可以逐行立即查看解释结果。
这个工具会随着 Ruby 的安装自动带有,所以您不需要做其他额外的事情,irb 即可正常工作。
只需要在命令提示符中键入 irb 回车,进入irb交互式 Ruby 会话(Session) 模式,如下所示:
退出irb模式,在控制台输入exit 回车(即按下Enter键),或者Ctrl+d
ruby文件的建立与运行
ruby文件的扩展名.rb
用记事本新建ruby文件,
print ("Hello World!!");
print ("Hi!");
保存在d:\ 目录下,文件名未fileA.rb
使用irb执行ruby文件
在cmd中键入 irb 回车(即按下Enter键),进入irb交互式 Ruby 会话(Session) 模式
再输入 load 'D:\rbDemo\FileA.rb' 回车(即按下Enter键)
使用ruby命令执行ruby文件
ruby D:\rbDemo\FileA.rb,参见下图:
【提示:早期版本,Ruby 文件中如果有中文,如果运行时提示 invalid multibyte char (US-ASCII)
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*-(EMAC写法) 或者 #coding=utf-8 就行了。例如:
# -*- coding: UTF-8 -*-
puts "你好,世界!";
】
基本语法知识
在Ruby中,一切皆为对象,字符串,数值,时间等各种数据,都是对象。
Ruby的变量
Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。常数则以大写字母开头; Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法。
输出方法有 print(),puts(),p()
puts方法与print方法不同之处在于,puts显示的字符串最后面一定会换行。
print和puts方法显示时,画面上显示出来的都是字符串,很难判断得知数据时什么对象,但是p方法会根据字符串与数值以不同的形式显示出来,甚至字符串内包含换行符号或定位等特殊字符时,也会以"\n"与"\t"的形式显示出来,数组、杂凑用p方法输出会比print方法输出显示结果要好理解。
单引号和双引号的区别在于:双引号可以对变量和特殊字符进行解析,而单引号却不行。如果是使用双引号解析变量,那么需要添加#{}
例如:
name = "baby";
puts('hello #{name}');
puts("hello #{name}");
注释
单行注释使用的是#开始
多行(块)注释使用的是=begin开始,=end结束
如:
单行注释以#开始,如
#注释,忽略
或者,注释可以跟着语句或表达式的同一行的后面:
x = 10 ; # 这也是注释
块注释会对解释器隐藏 =begin/=end 之间的行:
=begin
这是注释。
这也是注释。
这也是注释。
这还是注释。
=end
条件分支
score = 70
if score >= 90
puts("Great");
elsif score >= 80
puts("very good");
elsif score >= 60
puts("good");
else
puts("bad");
end
运行结果:
循环
i=1
while i<6 do
p("hello #{i}");
i+=1;
end
运行结果:
函数
def funName
x=10+2;
puts x;
end
Ruby 程序中的行尾
Ruby 把分号和换行符解释为语句的结尾。但是,如果 Ruby 在行尾遇到运算符,比如 +、- 或反斜杠,它们表示一个语句的延续。
每行结束可以用分号“;”,但其实ruby的每行结束是可以不用分号的,回车换行就行。
Ruby 标识符
标识符是变量、常量和方法的名称。Ruby 标识符是大小写敏感的。这意味着 Ram 和 RAM 在 Ruby 中是两个不同的标识符。
Ruby 标识符的名称可以包含字母、数字和下划线字符( _ )。
require、load以及include
require、load以及include关键字都是在kernel中定义的,用来包含外部文件或模块到当期程序中,下面就他们的具体区别进行部分阐述:
1、require:
require多引入外部rb源文件或者外部库(可以省略文件的后缀‘.rb’),require加载外部文件只会加载一次(多次引入会忽略),而load会加载多次
2、load:
load多为加载资源配置文件,因为load可以多次加载(每次都重新加载)(配置文件如***.yml等文件),与require相比,除了会加载多次外,加载时需要添加文件的后缀名
3、include:
include多为加载源文件中的模块,实现mix_in;同时include在定义类使用时,可以将模块的方法变为类的实例方法,变量变为当前类的类变量@@xxx;而与之相对的extend关键字会将模块中的方法变为类的类方法
require加载外部库或源文件:
require 'test_library '(或require 'test_library.rb')
load加载资源配置文件:
load 'language.yml'
gem 使用帮助
cmd中输入
gem help 回车
列出已经安装的包
在cmd中输入
gem list 回车
安装包
gem install 包名
按装TK包,在cmd中输入
gem install tk 回车
卸载安装包
gem uninstall包名
下面是使用TK包的窗口程序
例子、Ruby窗口程序
用记事本新建ruby文件,内容如下:
require 'tk'
tkroot=TkRoot.new {
title 'hellw word'
geometry '300x200'
}
lb = TkLabel.new(tkroot) do
font 'arial 20 bold'
pack :padx=>2,:pady=>2,:side=>'top'#使用pack把组件组装在界面中
end
Thread.start do
while true
lb.text=Time.new.strftime("%Y-%m-%d %H:%M:%S")
sleep(1)
end
end
tkroot.mainloop
保存在d:\ 目录下,文件名未fileB.rb
使用命令行执行
ruby D:\rbDemo\FileB.rb,参见下图:
Ruby 集成开发环境(IDE)
JetBrains公司的RubyMine,是收费的。
RubyMine是一个集成开发环境(IDE),可帮助您在Ruby / Rails项目开发的各个方面提高工作效率。从编写和调试代码到测试和部署已完成的应用程序。拥有强大的只能编辑器来高效快速的生成代码,并保障代码的质量,提高工作效率,RubyMine完美支持Ruby和Rails,JavaScript和CoffeeScript,ERB和HAML,CSS,Sass和Less等。