Ruby on beginning(一)

Ruby编程入门指南
本文介绍了Ruby编程的基础知识,包括如何开始编程、语法、字符串、哈希、范围构造、变量类型等核心概念。此外,还详细解释了Ruby中的局部变量、实例变量、类变量和全局变量的使用,并提供了创建对象的方法及Ruby中的新特性。

Ruby 菜鸟教程

如何开始?
方法一:ruby安装好之后,命令行输入irb,一个交互式ruby session就开始了。
方法二:如果有ruby的解释器(如,test.rb),则只要执行‘ruby test.rb’即可。

语法?
Ruby 把分号和换行符解释为语句的结尾。但是,如果 Ruby 在行尾遇到运算符,比如 +、- 或反斜杠,它们表示一个语句的延续。
ex:
puts 'hello world' +


'xufei'

会打印出 ‘hello worldxufei’,如果没有 ‘+’,则只会打印出 ‘ hello world

"Here Document"
<span style="font-size:12px;">print <<xufei
    bababababbabba  here document 。
fsdlkflsadfklsdkflaskdfl
fsdlkflsadfklsdkfdsfasdfsaffasdfs
xufei

print <<"EOF";                # 与上面相同
    这是第二种方式创建here document 。
    多行字符串。
EOF

print <<`EOC`                # 执行命令
echo hi there
echo	 hello there
EOC

print <<"foo", <<"bar"	      # 您可以把它们进行堆叠
	I said foo.
foo
	I said bar.
bar</span>
注:标示符的引号不同用的语法不同,第二种和第三种

BEGIN, END, COMMENT
在程序运行之前/结束时调用,‘#’可以注释一行或者一行的一部分,=begin =end可以注释一个代码块。
此处要特别声明的是:BEGIN,END 要大写
<span style="font-size:12px;">puts 'hello world' +

'xufei' #追加一行

#test BEGIN and END
END {
	puts 'this is the end word.'
}

BEGIN {
	puts 'today is 2015/12/26'
}

=begin
this 思
注释
一个代码块
=end</span>


字符串
“”和‘’的区别:“”的字符串中内容可被替换并可以使用所有反斜杠,‘’的字符串不可以被替换且只能用\\和\'两个反斜杠。
puts "Multiplication Value : #{24*60*60}";

哈希
有人说,ruby的精华70%都在哈希,所以有多重要不用我多说了吧

colors = {'name' => 'xufei', 'age' => 10, 'belong' => 'IT'}
colors.each do |key, value|
	print key, ' is ' , value, "\n" #print和puts的区别:print不换行,puts遇分号或换行之后打出的内容换行,注意,此处连接字符串用的逗号
end

范围构造
范围可使用 s..e 和 s...e 来构造,或者通过 Range.new 来构造。
#范围(try (4...10))
(4..10).each do |n|
	print n, ' '
end

color = Range.new(10,16)
color.each do |n|
	print n, ' '
end

Ruby中的变量
本人暂时还没有深入了解这些变量什么时候用
  • 局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。
  • 实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。
  • #实例变量如果没有初始化,则输出nil
  • 类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。
  • #类变量必须初始化才可以在方法定义中使用
  • 全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。
  • 给全局变量赋值会改变全局状态,不建议使用。

Ruby用new方法创建对象(new属于类方法)
如果要创建带参数的对象,则在创建类的同时,创建initialize方法。
class Customer
   @@no_of_customers=0
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
end

Ruby defined? 运算符

defined? variable # 如果 variable 已经初始化,则为 True





问题:
a + b 被解释为 a+b (这是一个局部变量)
a  +b 被解释为 a(+b) (这是一个方法调用)
Mac key shorts:https://support.google.com/chrome/answer/157179?hl=zh-Hans


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值