Window中Ruby开发环境搭建

Window中Ruby开发环境搭建

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言, 是一种类似于 Python 和 Perl 的脚本语言。由日本人松本行弘(Yukihiro Matsumoto)开发。你可以用在线版体验下,在线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.csdn.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等。

发布了60 篇原创文章 · 获赞 60 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章