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等。