2

红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

 1 year ago
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.
neoserver,ios ssh client
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

    书接上回,前一篇我们在全平台构建好了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插件即可:

20221006161005_75484.png

    随后编写test.rb文件:

puts "你好,Vscode"

    右键运行Ruby脚本:

20221006161023_75642.png

    简单方便,开箱可用。

    Ruby可以以最少的代码量解决问题,又不失可读性,优雅而又不乏实用,如果你有梦想,就一定看得到这颗红宝石和梦中的一样动人妖娆。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK