Ruby-基础语法
来源:互联网 发布:dbc2000怪物数据库 编辑:程序博客网 时间:2024/05/20 05:53
项目中API接口是使用ruby写的,为了适应以后的开发和可能的需要开始接触学习Ruby。
Ruby基础语法:
1、puts,putc , print,
这是几个常见的打印输出的方法
- puts会打印出带有换行符的内容
- putc会打印出第一个字符
- print打印的内容不带换行符
2、注释
# 注释# 这是单行注释# 多行注释=begin 这是多行注释=end# 这是多行注释# 这是多行注释# 这是多行注释
3、判断
input = 2if input <=5 && input>=0 puts '0-5之间'elsif input <=10 && input>=6 puts '6-10之间'else puts '其他范围'end
input = 2 case input when 0..5 puts '0-5之间' when 6..10 puts '6-10之间' else puts '其他范围' end
小 demo:
puts '请输入内容'input = gets.chomp.to_iif input == 1 puts '进入这里了' system "say 妈妈问我怎么不开心"elsif input == 2 system "say wo hen kai xin"else system "say 一毛钱都不给我"end
如果mac 10.10以上应该会听到系统发声。
4、循环
input = gets.chomp.to_i while input != 0 puts "进入循环了" break if input == 2 # 属于后置语法,当input为2时推出 end
input = gets.chomp.to_i until input != 0 # until与while满足的条件相反 puts "进入循环了" break if input == 2 # 属于后置语法,当input为2时推出 end
num1 = 0num2 = 2begin puts("在循环语句中 i = #{num1}" ) num1 +=1end while num1 < num2
相当于其他语言中的do while,至少会执行一次
5、代码块
sum = 0(1..100).each{|i| sum += i}puts sum #5050
# 异常处理a = 100while true puts "请输入分母:" b = gets.chomp.to_i break if b == 999 begin puts a/b rescue Exception=>e puts "分母不能为0!" endend
6、方法def
方式书写形式
def test puts 'hello test'end
带参数的方法
写法1:def add(a, b) a+bend写法2:def add1(a, b) return a+bend写法3:def add2(a=0, b=0) return a+bend
引申,方法的导入可以使用
require ‘./tools.rb’
7、查看类型对象的类型
# =========== 查看类型 ==============test = 'abc'puts test.class # 查看test的类型# Stringputs String.class# Class
aNmae = String.new('abc')aNmae += '1234'puts aNmaeputs String(1234)+'abc'
8、class
setter,getter一般通用写法:
#setter def name=(name) @name = name end #getter def name return @name end
setter,getter ruby写法:
# 使用ruby生成setter和getter attr_accessor :name #可读可写 attr_reader :no #只读 attr_writer :gender #只写
class Name:
class Student Verson = '1.0' #类常量 # 初始化 def initialize(name,no,gender) @name = name #类变量 @no = no @gender = gender end # 使用ruby生成setter和getter attr_accessor :name #可读可写 attr_reader :no #只读 attr_writer :gender #只写 # #setter # def name=(name) # @name = name # end # # #getter # def name # return @name # end def sayHello puts "我叫#{@name},学号#{@no},性别#{@gender}" endendstudent = Student.new('zw','10001','男')student.sayHellostudent.name = 'zww'puts Student::Versonputs student.name
9、方法控制
# =========== 方法控制 ==============class Methods public def sayHello puts 'sayHello' end private def sayHello1 puts 'sayHello' endendmethod = Methods.newmethod.sayHellomethod.sayHello1 #调用就会报错
10、方法扩充
# =========== 方法扩充 ==============class Student attr_accessor :name def initialize(name,no,gender) @name = name @no = no @gender = gender endend# 为Student类扩充sayHello方法class Student def sayHello puts 'sayHello' endend# 为String类扩充sayHi方法class String def sayHi puts 'I say hi' endendstudent = Student.new('zw','001','男')puts student.namestudent.sayHellostudent.name.sayHi
11、模块的使用
# =========== Math ==============puts Math::PI #puts Math.sqrt(4)puts Math::sqrt(4)
12、自定义模块
Mathematics模块
module Mathematics PI = 3.141592653 # 这种方式为类方法方法 def self.sqrt(number) Math.sqrt(number) end # 这种方式为实例方法 #def sqrt(number) # Math.sqrt(number) #endend
调用方式:
# =========== Module ==============require './Mathematics.rb'puts Mathematics::PIputs Mathematics::sqrt(4)puts Mathematics.sqrt(4)# 类方法可以使用点语法也可以使用 :: 进行调用
13、Hash
# =========== Hash ==============hs = {'a'=>'name','b'=>'age'}print hs.to_aputs #换行puts hs['a']a = Hash.newprint a['a']='b'
14、文件操作
# =========== 文件操作 ==============# 文件改名# File.rename('a.txt','b.txt')# 复制文件#require 'FileUtils'#FileUtils.cp('b.txt','b_1.txt')#删除文件,彻底删除,回收站中没有记录#File.delete('b_1.txt')# dir = Dir.open('/Users/zhouwei/Desktop/ZWRubyProduct/BaseRuby')# while file_name = dir.read# puts file_name# end# 创建文件夹# Dir.mkdir('tmp')# Dir.delete('tmp')
15、时间操作
# =========== 时间操作 ==============# Time:只能使用1970年以后的日期,包括时分秒# Date:可以使用更以前的日期,但不包括时分秒,需要require "date"# DateTime:综合了Time和Date,需要require "date"require 'date'puts DateTime.new# -4712-01-01T00:00:00+00:00require 'date'puts Date.new# -4712-01-01puts Time.new# 2017-05-14 09:23:13 +0800# 创建时间puts Time.new# 获取当前时间puts Time.now()# 获取年,月,日t = Time.new# 年puts t.year# 月puts t.month# 日puts t.day#获取在一年中的第几天puts t.ydayputs Time.now.to_s# 时间格式化puts Time.new.strftime('%Y/%m/%d %H:%M:%S')require 'date'puts Date.todayputs Date.today.yearputs Date.today.monthputs Date.today.dayputs Date.today - 3
1 0
- ruby基础语法笔记
- RUBY语法基础
- ruby基础语法
- ruby基础语法
- Ruby 基础语法
- Ruby基础语法
- Ruby-基础语法
- Ruby语言学习系列--ruby基础语法
- ruby语言语法基础汇总
- Ruby学习笔记之基础语法
- Ruby语言基础学习一:Ruby语法和数据类型
- ruby语法
- ruby-语法
- ruby语法
- [ruby] 语法
- Ruby语法
- ruby语法
- Ruby 语法
- USB无线网卡配置ICS失败,你可以连接到SoftAP,但可能无法使用internet服务
- JavaScrip 时间格式化 ----转载
- 中介者模式
- python 链表的归并排序(附数组的归并排序作为对照)
- SeekBar增加可触摸区域
- Ruby-基础语法
- Josiah的小园子 Git详细教程---多人协作开发
- Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- Lambda表达式与匿名内部类主要存在如下区别与相同点
- Leetcode 576 Out of Boundary Paths
- 【Unity&VS2015】VS2015的一个莫名其妙的问题
- 【Android】eclipse中使用RecyclerView
- Keras中实现mnist神经网络训练与模型保存(采用LeNet-5模型)
- JS 添加网页桌面快捷方式的代码