笔记:
Ruby会默认返回方法中的最后一个值。
如果需要返回多个值,可以用数组来实现。
可以通过强制声明return来返回值。
基础的输出方法是用puts(输出一行),print(直接打印)。
基础的输入方法是gets(读入一行,包含行尾的'\n',可以用chomp方法消除)。
纯粹的现象对象语言,而且还是一个动态语言(虽然今天目前还没用到),所以老老实实面向对象去。
有两种简单粗暴的储存多个元素的方法。数组[]和哈希表{},而且还有各种各样的函数。
强烈推荐新手入门在线学习网站: http://tryruby.org/ ,简直爽到爆!
各种代码
eg1: 建立一个哈希表
ojs = {} ojs["poj"] = :A ojs["hdu"] = :A ojs["uva"] = :B ojs["zoj"] = :B ojs["CF"] = :S ojs["TC"] = :S ratings = Hash.new(0) ojs.values.each { |rate| ratings[rate] += 1 } print ratings puts "" puts "===============================" print ojs puts "" puts "===============================" 3.times {print "hey!"} puts "" puts "===============================" print ojs.length puts "" print ojs.keys puts "" print ojs.values puts "" ojs.keys.each { |name| print name; print " "; print ojs[name]; puts ""; } puts "===============================" print File.read("x.txt") puts "===============================" File.open("x.txt", "a") do |f| f << "HACKED!\n" end print File.read("x.txt") puts "===============================" print File.mtime("x.txt") puts "" print File.mtime("x.txt").hour puts "" puts "==============================="
eg2: 从文件读数据建立一个哈希表
# 读取一个文件的数据库并且输出 def load_oj( path ) ojs = {} File.foreach(path) do |line| name, value = line.split(':') ojs[name] = value end print_oj(ojs) end def print_oj( data ) puts "================================" print "name\tvalue\n" data.keys.each do |name| puts "#{name}\t#{data[name]}" end puts "================================" end oj = load_oj("x.txt")
eg3: 从文件中读取学生信息并且输出
# 从文件中读取学生信息并且输出 class Student #attr_accessor :name #attr_accessor :number def initialize(name = "Unknown", number = "2012309999") @name = name @number = number end def print puts "#{@name}\t#{@number}" end end def load_stu( path ) data = {} File.foreach(path) do |line| na, no = line.split(' ') s = Student.new(no, na) data[s] = 1 end data end def print_stu( data ) puts "================================" print "name\tnumber\n" data.keys.each do |stu| stu.print end puts "================================" end data = load_stu("y.txt") print_stu(data)
eg4: 一行内输入4个整数,计算这四个数的最大公约数
# 一行内输入4个整数,计算这四个数的最大公约数 def gcd(a, b) if b === 0 return a else return gcd(b, a % b) end end str = gets.chomp a, b, c, d = str.split(" ") g1 = gcd(a.to_i, b.to_i); g2 = gcd(c.to_i, d.to_i); g3 = gcd(g1, g2) puts "gcd(#{a}, #{b}, #{c}, #{d}) = #{g3}"
本文向大家介绍Ruby数组(Array)学习笔记,包括了Ruby数组(Array)学习笔记的使用技巧和注意事项,需要的朋友参考一下 1、数组的定义 Ruby中的数组是动态数组,存储的数据不用限定类型,数组的长度是根据存储需要动态扩展,所以,在进行数据定义的时候,只用用最简单的方式new一个Array对象就可以了,可以使用以下几种方式: 2、数组元素的访问 数组对象访问是通过数组下标进行的,下标从0
本文向大家介绍Ruby中的Range对象学习笔记,包括了Ruby中的Range对象学习笔记的使用技巧和注意事项,需要的朋友参考一下 Range是范围对象的类,定义的时候可以使用范围操作符“..”或者“...”,“..”生成的范围对象包括起点和终点,“...”生成的范围对象不包括起点和终点,范围是由是一序列有顺序、有规律的元素对象组成,任何有顺序,有规律的一组对象,都可以用Range对象来定义,如数
本文向大家介绍Ruby中的String对象学习笔记,包括了Ruby中的String对象学习笔记的使用技巧和注意事项,需要的朋友参考一下 1、String对象定义 String对象的定义可以使用""和'',对于单纯的字符串,推荐使用''进行定义,效率比""高,""与''的区别在于,''内的字符串定义后就是最终形态,即使如\n换行符,也会原样输出,而""更像是一个表达式,解析器会针对其中的特殊字符进行
本文向大家介绍MongoDB 学习笔记,包括了MongoDB 学习笔记的使用技巧和注意事项,需要的朋友参考一下 1、配置:mongod --dbpath=D:\MongoDB\data mongo 2、基本的增删查改 find() update()-- 整体更新,局部更新。 修改器: $inc db.person.update({"age":23},{$inc:{"salary":1000}})
本文向大家介绍cmake 学习笔记,包括了cmake 学习笔记的使用技巧和注意事项,需要的朋友参考一下 最近接触到一些工程上的代码,都是用cmake来编译的,每次看着CMakeLists.txt 就各种懵逼,决定从0 开始学习 1 set 输出 hello 其实并不是单单输出hello,还有很多其他信息,会生成很多文件 files 2 CMAKE_C(XX)_FLAGS 变量 CMAKE_C_FL
TensorFlow安装 初识Tensorboard SKflow 觉得我的文章对您有帮助的话,就给个star吧~ 土豪可以打赏支持,一分也是爱