

红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
source link: https://v3u.cn/a_id_256
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。
Ruby是一门在面向对象层面无所不用其极的解释型编程语言。
我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的。
第一行代码
进入系统的irb终端,输入第一行代码:
irb(main):001:0> puts "你好 Ruby!"
你好 Ruby!
=> nil
puts关键字是 Ruby 语言里用来打印的基本命令。第三行输出的nil 是什么?其实是puts命令的返回值, puts命令永远返回 nil,nil也是 Ruby 的空值,可以理解为Python中的None关键字。
Ruby同时提供了一个更简单的输出对象内容的方法:p
irb(main):002:0> p "你好 Ruby!"
"你好 Ruby!"
=> "你好 Ruby!"
puts方法输出数值 1 和字符串 "1"时,结果都只是单纯的 1。这样一来,我们就无法判断输出的结果到底是属于哪个对象。此种种情况下,p方法可以很好地解决这个问题。使用 p方法时,数值结果和字符串结果会以不同的形式输出:
irb(main):003:0> puts "1"
1
=> nil
irb(main):004:0> puts 1
1
=> nil
irb(main):005:0> p "1"
"1"
=> "1"
irb(main):006:0> p 1
1
=> 1
irb(main):007:0>
藉此,编码过程中我们可以通过p方法快速打印一个变量并且知晓其数据类型。
和Python一样,Ruby3也具有print方法:
irb(main):007:0> print "你好","Ruby"
你好Ruby=> nil
irb(main):008:0> puts "你好","Ruby"
你好
Ruby
=> nil
print方法与puts方法和p方法稍有区别,puts方法在输出结果的末尾一定会输出换行符,而print方法则不会,由此,我们可以将print方法理解为省略换行的puts方法,在打印多个变量时,添加换行的puts方法无疑更友好。
单引号和双引号
Ruby3的字符串对象生成有两种方式,字符串文字值加单引号或加双引号。 两种方式主要区别在于构造文字量时,对字符串的处理次数不同。 单引号时,Ruby对字符串值不做处理,里边是什么就是什么。 双引号时,Ruby首先要查找文本中要替换的字符,即带反斜杠的字符,用二进制替换。
irb(main):011:0> puts "你好 \n Ruby"
你好
Ruby
=> nil
irb(main):012:0> puts '你好 \n Ruby'
你好 \n Ruby
=> nil
也可以理解为单引号是原样输出,而双引号则会替换为变量实体。
和Python不同的是,空格和制表符之类的空格字符通常在Ruby3代码中会被忽略,除非它们出现在字符串中。但是,有时它们被用来解释模棱两可的陈述。启用-w选项时,此类解释会产生警告:
irb(main):013:0> puts '你好 \n Ruby', "前面好多空格"
你好 \n Ruby
前面好多空格
=> nil
Ruby也可以多行构建字符串。在 << 之后,可以指定字符串或标识符以终止字符串文字,并且当前行之后直至终止符的所有行都是字符串的值。如果用引号引起来,则引号的类型确定面向行的字符串文字的类型。注意,<< 和终止符之间不能有空格:
irb(main):035:0" puts <<"EOF"
irb(main):036:0" 第一行
irb(main):037:0" 第二行
irb(main):038:0> EOF
第一行
第二行
=> nil
irb(main):039:0>
BEGIN和END语句
Ruby可以在程序中声明BEGIN作为初始执行的逻辑以及END作为程序结束时执行的逻辑:
puts "这是主线程Ruby3程序"
END {
puts "Ruby3程序结束"
}
BEGIN {
puts "Ruby3程序开始"
}
注释可以在Ruby解释器中隐藏一行,一行的一部分或几行,作为不执行的代码,可以在行的开头使用井号(#)
irb(main):069:0* # 我是一个注释。忽略我。
irb(main):070:0*
注释也可以在语句或表达式后的同一行上:
irb(main):070:0> name = "v3u.cn" # 这又是一个注释
=> "v3u.cn"
irb(main):071:0>
也可以通过使用=begin/=end从Ruby3解释器中隐藏了多行代码:
=begin
这是一条注释。
这也是注释。
这也是注释。
这还是注释。
=end
编辑器(Vscode)
如果厌倦了在irb命令行中编写Ruby代码,我们也可以在编辑器中随心所欲地编写,这里推荐微软开源的Vscode编辑器,下载地址:https://code.visualstudio.com/
安装好之后,只需要安装ruby插件即可:

随后编写test.rb文件:
puts "你好,Vscode"
右键运行Ruby脚本:

简单方便,开箱可用。
Ruby可以以最少的代码量解决问题,又不失可读性,优雅而又不乏实用,如果你有梦想,就一定看得到这颗红宝石和梦中的一样动人妖娆。
Recommend
-
38
妖娆的代理工具shadowProxy – 神出鬼没的切换IP地址
-
71
Go 零基础编程入门教程 - 背景:缘起一次饭局,喝到高兴处,朋友突然问我:“哪里可以找到 Go 零基础的入门视频?”,细问才知道,原来他最近想学下 Go。 我在脑海中快速检索,但无奈没有结果,只好告诉朋友:“暂时没有”。显然对于这个答案朋友有点失落,正当我不好...
-
67
Nuxt.js 基础入门教程
-
33
点击 上方蓝色“ 后端技术学堂 ”关注后加个“ 星标 ” 最新分享 第一时间看! 正文共3560字,预计阅读时长 8 分钟...
-
19
-
6
...
-
12
...
-
7
Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值对象),可以通过调用内置class属性来获取该对象的具体数据类型。对...
-
2
C语言基础入门详解一 精选 原创 IT路宇 2023-08-07 07:41:40...
-
7
C语言基础入门详解二 精选 原创 IT路宇 2023-08-07 07:41:18...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK